@font-face { font-family: 'Nunito Fallback'; src: local('Arial'); font-weight: 400; size-adjust: 100.0186%; ascent-override: 101.0812%; descent-override: 35.2934%; line-gap-override: 0.0000%; }
@font-face { font-family: 'Nunito Fallback'; src: local('Arial Bold'); font-weight: 700; size-adjust: 98.1611%; ascent-override: 102.9939%; descent-override: 35.9613%; line-gap-override: 0.0000%; }
@font-face { font-family: 'Quicksand Fallback'; src: local('Arial Bold'); font-weight: 600; size-adjust: 100.1120%; ascent-override: 99.8881%; descent-override: 24.9720%; line-gap-override: 0.0000%; }
@font-face { font-family: 'Quicksand Fallback'; src: local('Arial Bold'); font-weight: 700; size-adjust: 101.4920%; ascent-override: 98.5300%; descent-override: 24.6325%; line-gap-override: 0.0000%; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400 700; font-display: optional; src: url('/img/fonts/nunito-latin.woff2') format('woff2'); }
@font-face { font-family: 'Quicksand'; font-style: normal; font-weight: 600 700; font-display: optional; src: url('/img/fonts/quicksand-latin.woff2') format('woff2'); }

:root {
  --brand: #B45099;
  --brand-dark: #873C73;
  --border: #E1B9D6;
  --soft: #F8EDF5;
  --grey: #F2F2F2;
  --ink: #2B2B2B;
  --muted: #5A5B5C;
  --white: #FFFFFF;
  --font-heading: 'Quicksand', 'Quicksand Fallback', sans-serif;
  --font-body: 'Nunito', 'Nunito Fallback', sans-serif;
  --max-width: 1200px;
}

/* Base y accesibilidad */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body { margin: 0; font: 17px/1.65 var(--font-body); color: var(--ink); background: var(--white); }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--brand-dark); text-underline-offset: 5px; }
a:hover { text-decoration-thickness: 2px; }
button { font: inherit; cursor: pointer; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 5px; }
h1, h2, h3 { font-family: var(--font-heading); font-weight: 700; line-height: 1.12; text-wrap: balance; margin: 0 0 22px; }
h1 { font-size: clamp(48px, 6vw, 84px); letter-spacing: -2.8px; }
h2 { font-size: clamp(32px, 3.7vw, 50px); letter-spacing: -1.8px; }
h3 { font-size: 24px; letter-spacing: -.6px; }
p { margin: 0 0 20px; }
strong { font-weight: 700; }
small, .small { font-size: 15px; }
figure, blockquote { margin: 0; }
.container { width: min(var(--max-width), calc(100% - 40px)); margin-inline: auto; }
.block { padding-block: 68px; }
.soft { background: var(--soft); }
.accent { color: var(--brand); }
.muted { color: var(--muted); }
.eyebrow { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.6px; color: var(--brand-dark); margin-bottom: 22px; }
.eyebrow::before { content: ''; width: 20px; height: 2px; background: var(--brand); flex-shrink: 0; }
.lead { color: var(--muted); font-size: 18px; line-height: 1.65; max-width: 53ch; }
.section-heading { margin-bottom: 36px; max-width: 750px; }
.section-heading p:last-child { margin-bottom: 0; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 12px 25px; border: 1px solid var(--brand); border-radius: 999px; font-size: 18px; font-weight: 600; line-height: 1.4; text-decoration: none; text-align: center; transition: background .22s, border-color .22s, color .22s, box-shadow .22s; }
.button--primary { background: var(--brand); color: var(--white); }
.button--primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.button--secondary { color: var(--brand-dark); background: var(--white); border-color: var(--brand-dark); }
.button--secondary:hover, .button--secondary:focus-visible { background: var(--soft); box-shadow: 0 4px 15px color-mix(in srgb, var(--brand) 12%, transparent); }
.text-link { position: relative; display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; min-height: 44px; padding: 9px 19px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); color: var(--brand-dark); font-size: 15px; font-weight: 600; line-height: 1.5; text-decoration: none; transition: background .22s, border-color .22s, box-shadow .22s; }
.text-link:hover, .text-link:focus-visible { border-color: var(--brand-dark); background: var(--soft); box-shadow: 0 4px 15px color-mix(in srgb, var(--brand) 12%, transparent); }
.icon { display: inline-block; width: 25px; height: 25px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.skip-link { position: absolute; top: 10px; left: 20px; transform: translateY(-180%); z-index: 50; padding: 10px 16px; background: var(--white); }
.skip-link:focus { transform: none; }

/* Cabecera flotante y navegación de servicios */
.site-header { position: relative; padding-top: 12px; z-index: 20; }
.header-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 17px 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--white); box-shadow: 0 8px 35px color-mix(in srgb, var(--brand-dark) 5%, transparent); }
.brand-link { min-height: 44px; display: inline-flex; flex-direction: column; justify-content: center; align-items: flex-start; text-decoration: none; }
.brand-logo { width: 158px; }
.brand-tagline { color: var(--muted); font-size: 13px; letter-spacing: .45px; margin-top: 6px; }
.site-nav { width: 100%; }
.site-nav ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.site-nav a, .services-menu > summary { display: flex; align-items: center; gap: 6px; min-height: 46px; color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 700; }
.site-nav a:hover, .site-nav a[aria-current='page'] { color: var(--brand-dark); }
.menu-toggle { display: none; align-items: center; gap: 7px; min-height: 44px; background: var(--soft); border: 1px solid var(--border); padding: 8px 10px; border-radius: 6px; color: var(--brand-dark); font-size: 14px; }
.js .menu-toggle { display: flex; }
.js .site-nav:not(.is-open) { display: none; }
.services-menu { border: 0; }
.services-menu > summary { padding: 8px 0; cursor: pointer; list-style: none; }
.services-menu > summary::after { content: none; }
.services-menu > summary .icon { width: 14px; height: 14px; transition: transform .2s; }
.services-menu[open] > summary { color: var(--brand-dark); }
.services-menu[open] > summary .icon { transform: rotate(180deg); }
.services-menu > summary::-webkit-details-marker { display: none; }
.mega-menu { padding: 15px 0; }
.mega-intro { display: none; }
.mega-cards { display: grid; gap: 10px; }
.site-nav .mega-card { display: flex; align-items: stretch; flex-direction: column; gap: 5px; padding: 18px; border: 1px solid var(--border); border-radius: 10px; background: var(--soft); }
.mega-card-top { display: flex; align-items: center; justify-content: space-between; color: var(--brand-dark); font-size: 13px; }
.mega-card strong { font-family: var(--font-heading); font-size: 23px; margin-top: 7px; }
.mega-card > span:not(.mega-card-top) { font-size: 13px; font-weight: 400; }
.site-nav .mega-card .mega-card-price { display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 700; color: var(--brand-dark); margin-top: 8px; }
.mega-card-price .icon { width: 20px; height: 20px; }
.site-nav .mega-card:hover { background: var(--white); }
.mega-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-top: 16px; font-size: 13px; color: var(--muted); align-items: center; }
.mega-bottom a { font-size: 13px; }
.site-nav .nav-cta { justify-content: center; min-height: 44px; padding: 9px 20px; border: 1px solid var(--brand-dark); border-radius: 999px; color: var(--brand-dark); font-weight: 600; margin-top: 10px; }
.site-nav .nav-cta:hover { background: var(--soft); }

/* Prueba social visible al entrar, también a 360 px */
.review-band { padding: 22px 0 0; }
.review-band-inner { display: grid; grid-template-columns: auto 1fr; gap: 12px 16px; align-items: center; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.google-summary { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.google-letter { color: var(--brand-dark); font-size: 31px; font-weight: 700; line-height: 1; }
.google-summary strong { display: block; font-size: 14px; line-height: 1.4; color: var(--ink); }
.google-summary > span:last-child > span { display: block; color: var(--muted); font-size: 13px; }
.first-review { padding-left: 14px; border-left: 1px solid var(--border); }
.review-stars { display: block; color: var(--brand-dark); font-size: 13px; letter-spacing: 2px; line-height: 1.3; }
.first-review blockquote { font-size: 13px; font-weight: 700; line-height: 1.45; margin: 4px 0; }
.review-author { display: block; color: var(--muted); font-size: 13px; }
.review-author > span { display: none; }
.all-reviews { display: none; }

/* Hero: fotografía editorial, collage y muestras de diseño reales en HTML */
.block--hero { padding-block: 34px 22px; }
.hero-grid { display: grid; gap: 32px; align-items: center; }
.hero-copy h1 { line-height: 1.03; margin-bottom: 20px; text-wrap: initial; }
.hero-copy .eyebrow { font-size: 13px; letter-spacing: 1px; margin-bottom: 20px; }
.hero-handline { display: inline-block; position: relative; white-space: nowrap; }
.hero-handline::after { content: ''; position: absolute; left: 2px; bottom: -5px; width: 100%; height: 10px; border-top: 2px solid var(--border); border-radius: 50%; transform: rotate(-2deg); }
.hero-copy .lead { max-width: 46ch; font-size: 16px; margin-bottom: 20px; }
.hero-offer > span { display: block; color: var(--muted); font-size: 13px; }
.hero-offer p { font-size: 13px; margin: 4px 0 0; }
.hero-offer p > span { color: var(--brand); margin-inline: 8px; font-size: 19px; }
.hero-offer strong { font-family: var(--font-heading); font-size: 27px; letter-spacing: -.9px; }
.hero-offer strong small { font-family: var(--font-body); font-size: 13px; letter-spacing: 0; }
.hero-offer > small { color: var(--muted); font-size: 13px; }
.hero-actions { display: flex; gap: 16px; align-items: center; margin-top: 20px; }
.hero-actions .button { padding-inline: 24px; font-size: 18px; white-space: nowrap; }
.hero-actions > span { color: var(--muted); font-size: 13px; line-height: 1.5; flex-shrink: 0; }
.hero-bottom { display: flex; flex-direction: column; gap: 7px; padding-top: 25px; margin-top: 25px; border-top: 1px solid var(--border); color: var(--muted); font-size: 13px; }
.hero-bottom > span:first-child { text-transform: uppercase; letter-spacing: 2px; font-size: 13px; font-weight: 700; }
.hero-bottom a { display: inline-flex; align-items: center; min-height: 44px; margin-left: 5px; font-weight: 700; text-decoration: none; }

/* Servicios: escaparate con fotografía y filas numeradas */
.block--servicios { padding-top: 65px; }
.service-feature { display: grid; border: 1px solid var(--border); border-radius: 20px; overflow: hidden; margin-bottom: 28px; }
.service-feature-copy { padding: 28px; }
.service-feature-copy h3 { font-size: 32px; }
.service-visual { position: relative; }
.service-visual img { width: 100%; height: 100%; aspect-ratio: 1.5; object-fit: cover; }
.service-visual > span { position: absolute; bottom: 20px; left: 20px; background: var(--white); border-radius: 5px; padding: 7px 12px; color: var(--brand-dark); font-size: 13px; font-weight: 700; }
.service-feature-price { background: var(--soft); padding: 25px 28px; }
.price-number { font: 700 54px/1.1 var(--font-heading); color: var(--brand-dark); letter-spacing: -2px; }
.price-number span { font: 400 17px var(--font-body); letter-spacing: 0; }
.service-feature-price p { margin: 12px 0 0; }
.service-row { display: grid; gap: 15px; padding: 28px 0; border-bottom: 1px solid var(--border); position: relative; }
.service-row::before { content: attr(data-service-number); color: var(--brand-dark); font-size: 13px; letter-spacing: 1px; }
.service-row-title { display: flex; align-items: flex-start; gap: 15px; }
.icon-box { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: 50%; padding: 11px; color: var(--brand-dark); }
.service-row h3 { margin: 4px 0 10px; font-size: 28px; }
.service-row p { color: var(--muted); margin-bottom: 8px; }
.service-row .service-price { color: var(--ink); font-weight: 700; }
.service-row-price { align-self: center; }
.status-label { font-size: 13px; display: inline-block; padding: 5px 12px; background: var(--soft); color: var(--brand-dark); border: 1px solid var(--border); border-radius: 5px; font-weight: 700; }
.status-note { margin-top: 12px; }

/* Contenido, precio y proceso */
.split { display: grid; gap: 35px; align-items: center; }
.photo-frame img { width: 100%; aspect-ratio: 1.15; object-fit: cover; border-radius: 90px 15px 90px 15px; }
.photo-frame figcaption { color: var(--muted); font-size: 13px; padding-top: 14px; }
.check-list { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 13px; }
.check-list li { display: flex; align-items: baseline; gap: 12px; }
.check-list li::before { content: '✓'; color: var(--brand-dark); font-weight: 700; }
.steps { display: grid; gap: 28px; counter-reset: steps; list-style: none; padding: 0; margin: 36px 0 0; }
.steps li { counter-increment: steps; border-top: 1px solid var(--border); padding-top: 20px; }
.steps li::before { content: '0' counter(steps); display: block; font: 700 40px var(--font-heading); color: var(--brand); margin-bottom: 22px; }
.steps h3 { font-size: 21px; }
.steps p { color: var(--muted); font-size: 16px; margin-bottom: 0; }
.feature-grid { display: grid; gap: 0; border-top: 1px solid var(--border); }
.feature-card { border-bottom: 1px solid var(--border); padding: 28px 0; }
.feature-card .icon { color: var(--brand-dark); margin-bottom: 22px; width: 30px; height: 30px; }
.feature-card h3 { font-size: 22px; margin-bottom: 12px; }
.feature-card p { color: var(--muted); font-size: 16px; margin-bottom: 0; }
.price-panel { background: var(--white); border: 1px solid var(--border); border-radius: 18px; padding: 28px; }
.price-panel .eyebrow { margin-bottom: 30px; }
.price-breakdown { display: grid; gap: 22px; margin: 25px 0; }
.price-item { padding-bottom: 22px; border-bottom: 1px solid var(--border); }
.price-item p { margin: 10px 0 0; color: var(--muted); font-size: 15px; }
.price-item .price-number { margin-top: 12px; color: var(--brand-dark); font-size: 54px; }
.price-summary { border-top: 1px solid var(--border); margin-top: 25px; padding-top: 20px; }
.price-summary p:last-child { margin-bottom: 0; }
.price-panel .button { width: 100%; }
.scope-note { border-left: 3px solid var(--brand); padding-left: 20px; margin-top: 28px; font-size: 16px; }
.maintenance-note { margin-top: 32px; }

/* Muestras de diseño con imágenes generadas, siempre identificadas */
.heading-row { display: flex; flex-direction: column; gap: 12px; justify-content: space-between; margin-bottom: 36px; }
.heading-row .section-heading { margin-bottom: 0; }
.concept-caption { padding-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.concept-caption h3 { font-size: 21px; margin-bottom: 6px; }
.concept-caption p { font-size: 13px; color: var(--muted); margin: 0; }
.concept-caption > span { color: var(--brand-dark); font-size: 14px; white-space: nowrap; }
.examples-note { margin-top: 24px; font-size: 13px; }

/* Reseñas y preguntas frecuentes */
.review-cards { display: grid; gap: 20px; }
.review-card { display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--border); border-radius: 15px; padding: 26px; background: var(--white); }
.review-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.review-source { font-size: 13px; color: var(--muted); }
.review-card blockquote { font: 700 25px/1.3 var(--font-heading); letter-spacing: -.5px; margin: 25px 0 30px; }
.review-card figcaption { display: flex; gap: 12px; align-items: center; font-size: 13px; }
.review-initial { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; width: 40px; height: 40px; background: var(--soft); color: var(--brand-dark); font-weight: 700; }
.review-card figcaption > span:last-child > span { display: block; color: var(--muted); font-size: 13px; }
.faq-layout { display: grid; gap: 30px; align-items: start; }
.faq-list { border-top: 1px solid var(--border); }
.faq-list details { border-bottom: 1px solid var(--border); }
.faq-list summary { position: relative; min-height: 64px; padding: 21px 35px 21px 0; cursor: pointer; font-weight: 700; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; position: absolute; right: 4px; top: 16px; color: var(--brand-dark); font-size: 25px; }
.faq-list details[open] summary::after { content: '−'; }
.faq-list details p { color: var(--muted); padding-right: 20px; font-size: 16px; }
.cta-panel { background: var(--soft); border: 1px solid var(--border); border-radius: 24px 24px 80px 24px; padding: 36px 26px; display: grid; gap: 25px; align-items: center; }
.cta-panel h2 { max-width: 620px; }
.cta-panel p { color: var(--muted); margin-bottom: 0; }
.cta-action { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.cta-action small { color: var(--muted); }
.site-footer { border-top: 1px solid var(--border); padding-top: 50px; background: var(--white); }
.footer-grid { display: grid; gap: 32px; padding-bottom: 40px; }
.footer-brand p { font-size: 15px; color: var(--muted); max-width: 28ch; margin-top: 22px; }
.site-footer h2 { font-size: 16px; letter-spacing: 0; margin-bottom: 15px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; color: var(--muted); text-decoration: none; }
.site-footer a { border-radius: 5px; transition: color .2s, background .2s, box-shadow .2s; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--brand-dark); background: var(--soft); box-shadow: 6px 0 var(--soft), -6px 0 var(--soft); text-decoration: none; }
.site-footer address { font-size: 14px; font-style: normal; color: var(--muted); }
.site-footer address a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); }
.footer-bottom { border-top: 1px solid var(--grey); padding-block: 22px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); }
.footer-bottom p { margin: 0; }

@media (min-width: 768px) {
  .container { width: min(var(--max-width), calc(100% - 64px)); }
  .block { padding-block: 90px; }
  .site-header { padding-top: 18px; }
  .header-inner { padding: 19px 26px; }
  .brand-logo { width: 190px; }
  .brand-tagline { font-size: 13px; }
  .review-band { padding: 26px 0 0; }
  .review-band-inner { grid-template-columns: auto 1fr auto; gap: 35px; padding-bottom: 22px; }
  .google-summary { gap: 12px; }
  .google-letter { font-size: 35px; }
  .google-summary strong { font-size: 16px; }
  .google-summary > span:last-child > span { font-size: 13px; }
  .first-review { padding-left: 30px; }
  .first-review blockquote { font-size: 14px; display: inline; margin: 0; }
  .review-stars { font-size: 13px; }
  .first-review .review-stars { margin-bottom: 5px; }
  .review-author { font-size: 13px; display: inline; margin-left: 8px; }
  .review-author > span { display: inline; }
  .all-reviews { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; min-height: 44px; padding: 8px 16px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); text-decoration: none; transition: background .22s, border-color .22s, box-shadow .22s; }
  .block--hero { padding-block: 48px 20px; }
  .hero-grid { grid-template-columns: 1.1fr 1fr; gap: 25px; }
  .hero-copy h1 { font-size: clamp(43px, 5.8vw, 84px); }
  .hero-copy .eyebrow { font-size: 13px; letter-spacing: 1px; }
  .hero-copy .lead { font-size: 16px; }
  .hero-offer strong { font-size: 30px; }
  .hero-bottom { flex-direction: row; align-items: center; justify-content: space-between; }
  .service-feature { grid-template-columns: 1fr 1fr; }
  .service-feature-copy { padding: 40px; }
  .service-feature-price { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 25px 40px; }
  .service-feature-price p { margin: 0; }
  .service-feature-price .price-number { flex-shrink: 0; }
  .service-feature-price > .small:first-child { max-width: 120px; }
  .service-row { grid-template-columns: 1.4fr 1fr; gap: 32px; padding: 35px 0 35px 40px; }
  .service-row::before { position: absolute; left: 0; top: 40px; }
  .split { grid-template-columns: 1fr 1fr; gap: 45px; }
  .steps { grid-template-columns: repeat(4, 1fr); gap: 26px; }
  .feature-grid { grid-template-columns: repeat(2, 1fr); column-gap: 40px; }
  .price-panel { padding: 35px; }
  .price-breakdown { grid-template-columns: 1fr 1fr; }
  .price-item { padding-bottom: 0; border-bottom: none; }
  .price-item + .price-item { border-left: 1px solid var(--border); padding-left: 22px; }
  .price-item .price-number { font-size: 44px; }
  .heading-row { flex-direction: row; align-items: flex-end; gap: 40px; }
  .heading-row > a { flex-shrink: 0; }
  .review-cards { grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .review-card { padding: 23px; }
  .review-card blockquote { font-size: 24px; }
  .faq-layout { grid-template-columns: .8fr 1.2fr; gap: 60px; }
  .cta-panel { grid-template-columns: 1.4fr 1fr; padding: 48px; gap: 32px; }
  .cta-action { align-items: flex-end; text-align: right; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}

@media (min-width: 1200px) {
  .header-inner { flex-wrap: nowrap; gap: 35px; padding: 19px 28px; border-radius: 18px; }
  .js .menu-toggle { display: none; }
  .site-nav, .js .site-nav:not(.is-open) { width: auto; display: block; }
  .site-nav ul { flex-direction: row; gap: 28px; align-items: center; }
  .site-nav > ul > li > a:not(.nav-cta), .services-menu > summary { padding: 8px 4px; }
  .site-nav > ul > li > a:not(.nav-cta):hover { box-shadow: inset 0 -2px var(--brand); }
  .site-nav .nav-cta { padding: 9px 20px; border: 1px solid var(--brand-dark); border-radius: 999px; margin: 0 0 0 8px; }
  .services-menu .mega-menu { position: absolute; left: 50%; width: min(var(--max-width), calc(100% - 64px)); top: calc(100% - 1px); transform: translateX(-50%); background: var(--white); border: 1px solid var(--border); border-radius: 18px; padding: 30px; display: grid; grid-template-columns: .8fr 2.2fr; gap: 28px; box-shadow: 0 30px 50px color-mix(in srgb, var(--brand-dark) 12%, transparent); }
  .mega-intro { display: block; }
  .mega-intro .eyebrow { font-size: 13px; margin-bottom: 16px; }
  .mega-intro p { font: 700 30px/1.12 var(--font-heading); letter-spacing: -1px; margin-bottom: 15px; }
  .mega-intro > span:last-child { display: block; color: var(--muted); font-size: 13px; }
  .mega-cards { grid-template-columns: repeat(3, 1fr); }
  .site-nav .mega-card { padding: 20px; }
  .mega-bottom { grid-column: 1 / -1; border-top: 1px solid var(--border); padding-top: 12px; }
  .brand-logo { width: 205px; }
  .review-band-inner { gap: 45px; }
  .first-review blockquote { font-size: 15px; }
  .first-review .review-stars { display: inline; margin-right: 12px; }
  .review-author { display: block; margin: 3px 0 0; }
  .all-reviews { font-size: 13px; }
  .block--hero { padding-top: 38px; }
  .hero-grid { grid-template-columns: 1.12fr 1fr; gap: 60px; }
  .hero-copy h1 { font-size: 81px; letter-spacing: -4px; margin-bottom: 25px; }
  .hero-copy .eyebrow { font-size: 13px; margin-bottom: 25px; }
  .hero-copy .lead { font-size: 18px; max-width: 45ch; margin-bottom: 22px; }
  .hero-offer > span { font-size: 13px; }
  .hero-offer strong { font-size: 34px; }
  .hero-offer p { font-size: 14px; }
  .hero-offer > small { font-size: 13px; }
  .hero-actions { margin-top: 24px; gap: 24px; }
  .hero-actions > span { font-size: 13px; }
  .hero-actions .button { padding: 13px 28px; }
  .hero-bottom { margin-top: 28px; }
  .hero--web .hero-copy h1 { font-size: 78px; }
  .service-feature-copy { padding: 48px; }
  .service-feature-copy h3 { font-size: 42px; }
  .service-visual img { aspect-ratio: 1.4; }
  .service-feature-price { padding: 27px 48px; }
  .service-row { grid-template-columns: 1.5fr 1fr; gap: 80px; padding-left: 65px; }
  .service-row h3 { font-size: 34px; }
  .split { gap: 80px; }
  .feature-grid { grid-template-columns: repeat(3, 1fr); column-gap: 45px; }
  .feature-card { padding-block: 35px; }
  .price-item .price-number { font-size: 54px; }
  .review-card { padding: 30px; }
  .review-card blockquote { font-size: 28px; }
  .footer-grid { grid-template-columns: 1.2fr .8fr .9fr 1.1fr; gap: 50px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* V3: las imágenes muestran webs completas, sin recortar su navegación. */
.hero-showcase { position: relative; min-width: 0; padding: 15px 0 72px; isolation: isolate; }
.showcase-backdrop { position: absolute; inset: 0 5px 25px 20px; z-index: -1; background: var(--soft); border: 1px solid var(--border); border-radius: 20px 80px 20px 20px; transform: rotate(4deg); }
.mockup-visual { position: relative; display: block; border-radius: 9px; transition: transform .2s; cursor: default; }
.mockup-visual img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; border-radius: inherit; }
.showcase-main { width: 96%; margin-left: 4%; transform: rotate(-3deg); box-shadow: 0 12px 28px color-mix(in srgb, var(--ink) 15%, transparent); }
.showcase-main:hover { transform: rotate(-1deg) translateY(-3px); }
.showcase-secondary { width: 61%; margin-top: -55px; margin-left: 0; transform: rotate(4deg); z-index: 1; box-shadow: 0 12px 28px color-mix(in srgb, var(--ink) 18%, transparent); }
.showcase-secondary:hover { transform: rotate(2deg) translateY(-3px); }
.showcase-badge { position: absolute; right: -2px; bottom: 65px; padding: 13px 15px; background: var(--white); border: 1px solid var(--border); border-radius: 6px; transform: rotate(-5deg); color: var(--brand-dark); font: 700 14px/1.3 var(--font-heading); }
.hero-showcase figcaption { font-size: 13px; line-height: 1.5; color: var(--muted); margin-top: 20px; padding-inline: 5px; text-align: right; }
.service-visual--mockup { display: flex; align-items: center; padding: 24px; background: var(--soft); }
.service-visual--mockup .mockup-visual { width: 100%; box-shadow: 0 10px 25px color-mix(in srgb, var(--ink) 12%, transparent); }
.service-visual--mockup img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.photo-frame--mockup { padding: 20px; background: var(--white); border: 1px solid var(--border); border-radius: 18px; }
.photo-frame--mockup img { aspect-ratio: 3 / 2; object-fit: contain; border-radius: 8px; }
.portfolio-concepts { display: grid; gap: 36px; }
.portfolio-concept { min-width: 0; }
.portfolio-concept-image { border: 1px solid var(--border); box-shadow: 0 15px 30px color-mix(in srgb, var(--brand-dark) 7%, transparent); }
.portfolio-concept-image:hover { transform: translateY(-5px); }
.portfolio-concept .concept-caption h3 { font-size: 20px; }

@media (min-width: 768px) {
  .hero-showcase { padding-bottom: 15px; }
  .showcase-secondary { margin-top: -50px; }
  .showcase-badge { bottom: 70px; font-size: 13px; padding: 10px 12px; }
  .portfolio-concepts { grid-template-columns: 1fr 1fr; gap: 45px 28px; }
  .portfolio-concept:last-child { grid-column: 1 / -1; max-width: 80%; margin-inline: auto; }
}
@media (min-width: 1200px) {
  .hero-showcase { padding-top: 15px; padding-bottom: 0; }
  .showcase-secondary { margin-top: -90px; }
  .showcase-badge { bottom: 75px; right: -5px; font-size: 17px; padding: 17px 20px; }
  .hero-showcase figcaption { font-size: 13px; }
  .portfolio-concepts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 32px; }
  .portfolio-concept:last-child { max-width: 75%; }
  .portfolio-concept .concept-caption h3 { font-size: 24px; }
  .service-visual--mockup { padding: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .mockup-visual { transition: none; }
}

/* Acciones secundarias: superficies táctiles en lugar de subrayados. */
.all-reviews:hover, .all-reviews:focus-visible { border-color: var(--brand-dark); background: var(--soft); box-shadow: 0 4px 15px color-mix(in srgb, var(--brand) 12%, transparent); }
.hero-bottom a, .mega-bottom a { justify-content: center; min-height: 44px; padding: 8px 16px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); color: var(--brand-dark); font-weight: 600; text-decoration: none; transition: background .22s, border-color .22s; }
.hero-bottom a:hover, .mega-bottom a:hover, .hero-bottom a:focus-visible, .mega-bottom a:focus-visible { border-color: var(--brand-dark); background: var(--soft); }
.maintenance-note .text-link { margin: 12px 0 0 6px; font-size: 14px; }

/* Luz suave que acompaña el puntero; el contenido sigue siendo texto, no un enlace. */
[data-spotlight] { position: relative; isolation: isolate; --pointer-x: 50%; --pointer-y: 0px; }
[data-spotlight]::before { content: ''; position: absolute; inset: -16px; z-index: -1; pointer-events: none; border-radius: 20px; background: radial-gradient(220px circle at var(--pointer-x) var(--pointer-y), color-mix(in srgb, var(--brand) 12%, transparent), transparent 75%); opacity: 0; transition: opacity .3s; }
[data-spotlight-item] { position: relative; border-radius: 12px 12px 0 0; transition: background .25s, border-color .25s, box-shadow .25s; }
[data-spotlight-item]::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: var(--brand); pointer-events: none; opacity: 0; transform: scaleX(.15); transform-origin: left; transition: opacity .25s, transform .35s; }
[data-spotlight-item] h3 { transition: color .25s; }
.feature-card .icon { transition: transform .25s, color .25s; }
.service-row { transition: background .25s, box-shadow .25s; }
.service-row .icon-box { transition: background .25s, border-color .25s, transform .25s; }

@media (hover: hover) and (pointer: fine) {
  [data-spotlight].is-pointing::before { opacity: 1; }
  [data-spotlight-item]:hover { background: color-mix(in srgb, var(--soft) 65%, transparent); border-color: var(--border); box-shadow: 14px 0 color-mix(in srgb, var(--soft) 65%, transparent), -14px 0 color-mix(in srgb, var(--soft) 65%, transparent); }
  [data-spotlight-item]:hover::after { opacity: 1; transform: scaleX(1); }
  [data-spotlight-item]:hover h3 { color: var(--brand-dark); }
  .feature-card:hover .icon { color: var(--brand-dark); transform: translateY(-3px); }
  .steps li:hover::before { color: var(--brand-dark); }
  .service-row:hover { background: var(--soft); box-shadow: 18px 0 var(--soft), -18px 0 var(--soft); }
  .service-row:hover .icon-box { background: var(--white); border-color: var(--brand); transform: translateY(-2px); }
}

@media (prefers-reduced-motion: reduce) {
  [data-spotlight]::before { display: none; }
  [data-spotlight-item]:hover::after { transform: none; }
  .feature-card:hover .icon, .service-row:hover .icon-box { transform: none; }
}

/* Revisión comercial: contacto móvil y textos legibles. */
.mobile-actions { display: flex; align-items: center; gap: 8px; }
.mobile-whatsapp { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 999px; color: var(--brand-dark); background: var(--white); font-size: 13px; font-weight: 600; text-decoration: none; }
.mobile-whatsapp:hover { border-color: var(--brand-dark); background: var(--soft); }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; }
.footer-contact a { min-height: 44px; display: inline-flex; align-items: center; color: var(--muted); font-size: 14px; text-decoration: none; }
.choice-grid { display: grid; gap: 22px; }
.choice-card { padding: 26px; border: 1px solid var(--border); border-radius: 16px; }
.choice-card h3 { margin-top: 20px; }
.choice-card p { margin-bottom: 0; color: var(--muted); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }
@media (max-width: 767px) {
  .header-inner { padding: 13px; gap: 8px; }
  .header-inner .brand-logo { width: 130px; }
  .header-inner .brand-tagline { display: none; }
  .menu-toggle { min-width: 44px; justify-content: center; padding: 8px; }
  .review-band-inner { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 12px; }
  .google-summary { gap: 7px; }
  .google-letter { font-size: 27px; }
  .first-review { padding-left: 12px; }
  .hero-actions > span { flex-shrink: 1; }
}
@media (min-width: 768px) { .choice-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .mobile-actions { display: none; } }

/* Páginas de servicio y formularios · misma marca, distintos ritmos. */
.page-hero { padding-bottom: 48px; }
.page-hero .hero-copy h1 { font-size: clamp(44px, 5.2vw, 76px); }
.page-hero .hero-copy { min-width: 0; }
.hero-price-line { margin: 20px 0 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.hero-price-line strong { font-size: 19px; color: var(--ink); }
.wide-heading { max-width: 940px; }
.wide-heading h1 { font-size: clamp(46px, 6.5vw, 88px); }
.wide-heading .lead { max-width: 60ch; }
.item-number { display: block; color: var(--brand-dark); font-size: 14px; margin-bottom: 22px; }
.single-showcase { position: relative; min-width: 0; isolation: isolate; padding: 30px 0; }
.single-showcase figcaption { font-size: 13px; color: var(--muted); margin-top: 20px; text-align: right; }
.single-showcase .showcase-backdrop { inset: 5px 0 25px 20px; }
.elite-hero { margin-top: 28px; padding-block: 45px; color: var(--white); background: var(--ink); overflow: hidden; }
.elite-hero .eyebrow { color: var(--border); }
.elite-hero .accent { color: var(--border); }
.elite-hero .lead, .elite-hero .hero-price-line { color: var(--grey); }
.elite-hero .hero-price-line strong { color: var(--white); }
.elite-hero .hero-copy h1 { font-size: clamp(46px, 5.5vw, 80px); }
.elite-path { border: 1px solid var(--border); border-radius: 28px 28px 80px 28px; padding: 26px; background: linear-gradient(135deg, var(--ink), color-mix(in srgb, var(--brand-dark) 25%, var(--ink))); }
.elite-path > .eyebrow { font-size: 13px; letter-spacing: 1px; }
.path-node { position: relative; border-top: 1px solid color-mix(in srgb, var(--border) 40%, transparent); padding: 20px 0; }
.path-node > span { color: var(--border); display: block; font-size: 13px; margin-bottom: 10px; }
.path-node strong { display: block; font: 700 25px/1.2 var(--font-heading); }
.path-node p { margin: 8px 0 0; font-size: 14px; color: var(--grey); }
.elite-path > .small { display: block; font-size: 13px; color: var(--grey); }
.level-grid, .sector-grid, .social-plans, .editorial-samples, .contact-grid, .blog-grid { display: grid; gap: 20px; }
.level-card, .plan-card { min-width: 0; padding: 28px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); }
.level-card .eyebrow { margin-bottom: 24px; }
.level-card h3 { font-size: 43px; }
.level-card h3 small { display: block; margin-top: 8px; font: 400 14px/1.5 var(--font-body); letter-spacing: 0; color: var(--muted); }
.level-card p { font-size: 16px; }
.level-budget { border-top: 1px solid var(--border); padding-top: 18px; color: var(--muted); margin-bottom: 0; }
.launch-panel { margin-top: 28px; display: grid; gap: 25px; padding: 28px; border-radius: 20px; background: var(--ink); color: var(--white); }
.launch-panel .eyebrow { color: var(--border); }
.launch-panel p { margin-bottom: 0; }
.launch-price { font: 700 54px var(--font-heading); white-space: nowrap; }
.launch-price small { display: block; font: 400 15px var(--font-body); }
.sector-card { padding: 28px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.sector-card p { color: var(--muted); }
.case-placeholder { border: 1px dashed var(--brand-dark); border-radius: 20px; padding: 28px; background: var(--grey); }
.case-placeholder h3 { margin-top: 24px; overflow-wrap: anywhere; }
.case-placeholder p { margin-bottom: 0; }
.social-composition { min-width: 0; position: relative; padding: 20px 0; }
.social-square { position: relative; background: var(--brand-dark); color: var(--white); border-radius: 24px; padding: 30px; width: 85%; aspect-ratio: 1; transform: rotate(-4deg); display: flex; flex-direction: column; justify-content: space-between; }
.social-square > span { font: 700 clamp(32px, 4vw, 53px)/1.1 var(--font-heading); letter-spacing: -1.5px; }
.social-square p { margin: 30px 0 0; font-size: 14px; }
.social-caption { position: relative; margin: -30px 0 0 25%; padding: 25px; border: 1px solid var(--border); background: var(--white); border-radius: 16px; transform: rotate(3deg); box-shadow: 0 15px 30px color-mix(in srgb, var(--ink) 8%, transparent); }
.social-caption .eyebrow { font-size: 13px; margin-bottom: 15px; letter-spacing: 1px; }
.social-caption strong { font: 700 25px/1.2 var(--font-heading); }
.social-caption p { margin: 12px 0 0; font-size: 14px; }
.composition-note { display: block; margin-top: 25px; color: var(--muted); font-size: 13px; }
.plan-card { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }
.plan-card h3, .plan-card p { margin: 0; }
.plan-card .check-list { margin: 0 0 20px; }
.plan-card .button { margin-top: auto; }
.plan-card--featured { border: 2px solid var(--brand-dark); }
.editorial-samples article { padding: 28px; background: var(--soft); border-radius: 20px; }
.editorial-samples span { display: block; font-size: 13px; color: var(--brand-dark); margin-bottom: 25px; }
.editorial-samples p { margin: 0; color: var(--muted); }
.funding-band { padding-block: 24px; background: var(--white); }
.funding-band img { width: 100%; height: auto; object-fit: contain; }
.status-band { padding-block: 25px; }
.call-status { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 20px 0; border-block: 1px solid var(--border); }
.call-status p { margin: 0; font-size: 15px; }
.journey-card { border: 1px solid var(--border); border-radius: 25px 25px 70px 25px; background: var(--soft); padding: 28px; }
.journey-card ol { list-style: none; padding: 0; margin: 25px 0; }
.journey-card li { border-top: 1px solid var(--border); padding: 22px 0; }
.journey-card li > span { color: var(--brand-dark); display: block; font: 700 36px var(--font-heading); }
.journey-card li strong { font: 700 24px var(--font-heading); }
.journey-card li p { margin: 10px 0 0; color: var(--muted); }
.journey-card > p { margin: 0; font-size: 15px; }
.form-layout, .checkout-layout { display: grid; align-items: start; gap: 30px; }
.form-aside { min-width: 0; }
.form-aside h2 { font-size: 40px; }
.form-aside p { color: var(--muted); }
.form-panel, .calendar-panel { min-width: 0; padding: 25px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); }
.form-panel h2, .calendar-panel h2 { font-size: 29px; letter-spacing: -1px; }
.prototype-note { color: var(--muted); font-size: 13px; line-height: 1.6; border-left: 2px solid var(--border); padding-left: 14px; }
.form-grid { display: grid; gap: 20px; }
.form-field { min-width: 0; }
.form-field label { display: block; font-size: 15px; font-weight: 700; margin-bottom: 7px; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-width: 0; min-height: 52px; border: 1px solid var(--border); border-radius: 8px; color: var(--ink); background: var(--white); font: 400 16px/1.4 var(--font-body); padding: 12px; }
.form-field textarea { resize: vertical; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: var(--brand-dark); }
.form-panel fieldset { min-width: 0; padding: 20px 0 0; margin: 25px 0; border: 0; border-top: 1px solid var(--border); }
.form-panel legend { padding: 0 10px 0 0; font-weight: 700; }
.check-field { display: flex; align-items: flex-start; gap: 11px; min-height: 44px; padding-block: 10px; font-size: 15px; cursor: pointer; }
.check-field input { width: 20px; height: 20px; margin: 3px 0 0; flex-shrink: 0; accent-color: var(--brand-dark); }
.check-field a, .data-note a { display: inline; text-decoration: none; font-weight: 700; background: var(--soft); padding: 2px 5px; border-radius: 4px; }
.data-note { font-size: 13px; color: var(--muted); border-top: 1px solid var(--border); padding-top: 20px; margin-top: 25px; overflow-wrap: anywhere; }
.data-note p { margin: 8px 0; }
.form-panel > .button { margin-top: 20px; white-space: normal; }
.form-feedback, .solution-error { margin: 20px 0 0; padding: 18px; border: 1px solid var(--brand-dark); background: var(--soft); border-radius: 12px; color: var(--brand-dark); font-size: 15px; }
.calendar-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 25px 0; }
.calendar-times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 25px; }
.calendar-panel button:not(.button), .filter-chip { min-height: 44px; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--white); color: var(--brand-dark); font: 700 14px var(--font-body); }
.calendar-panel button[aria-pressed="true"], .filter-chip[aria-pressed="true"] { background: var(--brand-dark); color: var(--white); border-color: var(--brand-dark); }
.calendar-panel button:hover, .filter-chip:hover { border-color: var(--brand-dark); }
.calendar-panel button:disabled { cursor: default; opacity: .55; }
[data-kit-back] { margin-top: 18px; }
.order-summary { min-width: 0; padding: 28px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); }
.order-summary p { font-size: 15px; color: var(--muted); }
.order-summary h2 { font-size: 36px; }
.order-lines { margin: 28px 0; }
.order-lines > div { border-block-start: 1px solid var(--border); padding: 18px 0; }
.order-lines dt { font-size: 14px; color: var(--muted); }
.order-lines dd { font: 700 29px var(--font-heading); margin: 8px 0 0; }
.table-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: 16px; }
table { width: 100%; border-collapse: collapse; text-align: left; font-size: 15px; }
caption { text-align: left; padding: 20px; color: var(--brand-dark); font-weight: 700; background: var(--soft); }
th, td { padding: 16px; border-top: 1px solid var(--border); vertical-align: top; }
thead { background: var(--grey); }
tbody th { font-weight: 600; }
.computer-visual { min-width: 0; padding: 25px 0; }
.computer-screen { border: 8px solid var(--ink); border-radius: 15px 15px 3px 3px; padding: 25px; background: var(--soft); }
.computer-screen > span { font: 700 clamp(26px, 4vw, 48px)/1.1 var(--font-heading); color: var(--brand-dark); }
.computer-window { margin: 20px 0 0 15%; border: 1px solid var(--border); border-radius: 12px; padding: 15px; background: var(--white); }
.computer-window i { width: 6px; height: 6px; display: inline-block; background: var(--border); border-radius: 50%; }
.computer-window p { font-size: 17px; margin: 10px 0 0; }
.computer-base { height: 18px; margin-inline: -8px; background: var(--ink); border-radius: 3px 3px 25px 25px; }
.computer-visual > p { font-size: 13px; margin-top: 20px; color: var(--muted); }
.filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.filter-chip { border-radius: 999px; padding-inline: 16px; }
.empty-filter { padding: 40px 25px; border: 1px dashed var(--brand-dark); border-radius: 20px; background: var(--soft); }
[data-filter-grid] .portfolio-concept:last-child { grid-column: auto; max-width: none; }
[data-filter-grid] .concept-caption h2 { font-size: 27px; letter-spacing: -.6px; margin-bottom: 6px; }
.contact-card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 25px; min-width: 0; border: 1px solid var(--border); border-radius: 20px; text-decoration: none; color: var(--ink); transition: transform .2s, background .2s; }
.contact-card .eyebrow { margin: 0; }
.contact-card strong { font: 700 25px var(--font-heading); overflow-wrap: anywhere; }
.contact-card > span:last-child { color: var(--muted); font-size: 15px; }
.contact-card:hover { background: var(--soft); transform: translateY(-3px); }
.blog-card { min-width: 0; border: 1px solid var(--border); border-radius: 20px; overflow: hidden; background: var(--white); }
.blog-card > a { display: block; height: 100%; color: var(--ink); text-decoration: none; transition: background .2s; }
.blog-card > a:hover { background: var(--soft); }
.article-cover { min-height: 250px; padding: 25px; background: var(--soft); color: var(--brand-dark); display: flex; flex-direction: column; justify-content: space-between; }
.article-cover > span { font-size: 13px; }
.article-cover strong { font: 700 37px/1.12 var(--font-heading); letter-spacing: -1.2px; white-space: pre-line; }
.cover-1 { background: var(--brand-dark); color: var(--white); }
.cover-2 { background: var(--ink); color: var(--white); }
.blog-card-copy { padding: 25px; }
.blog-card-copy h2 { font-size: 25px; letter-spacing: -.6px; }
.blog-card-copy .eyebrow { font-size: 13px; letter-spacing: 1px; }
.blog-card-copy p { font-size: 16px; color: var(--muted); }
.reading-label { display: inline-flex; min-height: 44px; align-items: center; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--border); color: var(--brand-dark); font-size: 14px; font-weight: 700; }
.reading-heading { max-width: 850px; margin-inline: auto; }
.reading-heading h1 { font-size: clamp(40px, 5.4vw, 72px); overflow-wrap: anywhere; }
.reading-heading > .text-link { margin-bottom: 30px; }
.article-meta { font-size: 14px; color: var(--muted); }
.article-layout { display: grid; gap: 35px; align-items: start; }
.article-toc { padding: 25px; border: 1px solid var(--border); border-radius: 16px; }
.article-toc h2 { font-size: 20px; letter-spacing: -.5px; }
.article-toc a { display: flex; min-height: 44px; align-items: center; border-radius: 8px; padding: 10px; font-size: 15px; color: var(--brand-dark); text-decoration: none; }
.article-toc a:hover { background: var(--soft); }
.article-body, .legal-copy { max-width: 70ch; }
.article-body section { margin-bottom: 45px; scroll-margin-top: 30px; }
.article-body h2, .legal-copy h2 { font-size: 30px; margin-block: 35px 20px; }
.article-body p, .legal-copy p { line-height: 1.85; }
.legal-copy { margin-inline: auto; }
.error-layout { display: grid; gap: 25px; align-items: center; }
.error-number { font: 700 clamp(130px, 22vw, 300px)/1 var(--font-heading); color: var(--border); letter-spacing: -12px; }
.error-services { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; }
.site-nav a[aria-current="page"] { color: var(--brand-dark); background: var(--soft); }
@media (min-width: 768px) {
  .level-grid, .social-plans, .contact-grid, .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sector-grid, .editorial-samples { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .launch-panel { grid-template-columns: 1fr auto; align-items: center; padding: 35px; }
  .form-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 35px; }
  .checkout-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field-wide { grid-column: 1 / -1; }
  .form-panel, .calendar-panel { padding: 28px; }
  .calendar-times { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .error-layout { grid-template-columns: .7fr 1.3fr; }
  .article-layout { grid-template-columns: 250px minmax(0, 1fr); }
  .article-toc { position: sticky; top: 30px; }
}
@media (min-width: 1200px) {
  .page-hero { padding-bottom: 60px; }
  .page-hero .hero-grid { grid-template-columns: 1.1fr 1fr; }
  .elite-hero { padding-block: 60px; }
  .elite-path { padding: 35px; }
  .level-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .level-card { padding: 25px; }
  .level-card h3 { font-size: 45px; }
  .contact-grid, .blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .form-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 80px; }
  .checkout-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 55px; }
  .form-panel, .calendar-panel { padding: 36px; }
  .order-summary { position: sticky; top: 25px; padding: 35px; }
  .calendar-days { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .article-layout { grid-template-columns: 280px minmax(0, 70ch); gap: 65px; }
}
/* Los títulos por sector pueden ocupar dos líneas, sin forzar el ancho del móvil. */
.sector-web .hero-copy { min-width: 0; }
.sector-web .hero-handline { white-space: normal; max-width: 100%; }
.form-panel > .button:disabled { opacity: .55; cursor: default; }
@media (prefers-reduced-motion: no-preference) {
  .button:active { transform: translateY(1px) scale(.985); }
}
.sector-links { display: flex; flex-wrap: wrap; gap: 12px; }
.social-square p { margin-bottom: 36px; }
@media (min-width: 1200px) {
  .elite-hero .hero-copy h1 { font-size: 68px; letter-spacing: -3.6px; }
}

/* Kit Digital: dos caminos con el mismo peso visual. */
.kit-paths { padding-top: 28px; }
.kit-choice-grid, .kit-start-options { display: grid; gap: 24px; align-items: stretch; }
.kit-choice-card { min-width: 0; margin: 0; padding: 26px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); display: flex; flex-direction: column; }
.kit-choice-card h2 { font-size: 30px; letter-spacing: -1px; }
.kit-choice-card > .button { margin-top: auto; padding-block: 13px; width: 100%; min-height: 64px; }
.kit-choice-card > .check-field { margin-bottom: 15px; }
.kit-choice-card > .data-note { margin-top: 24px; }
.kit-choice-steps { list-style: none; padding: 0; margin: 24px 0 40px; counter-reset: choice; }
.kit-choice-steps li { counter-increment: choice; border-top: 1px solid var(--border); padding: 24px 0; }
.kit-choice-steps li::before { content: '0' counter(choice); display: block; color: var(--brand-dark); font: 700 28px var(--font-heading); margin-bottom: 12px; }
.kit-choice-steps strong, .kit-choice-steps span { display: block; }
.kit-choice-steps span { color: var(--muted); font-size: 15px; margin-top: 8px; }
.kit-start-options { margin-bottom: 42px; }
.kit-start-options article { min-width: 0; padding: 25px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); display: flex; flex-direction: column; }
.kit-start-options p { color: var(--muted); }
.kit-start-options .button { margin-top: auto; }
.confirmation-panel { padding: 30px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); }
.confirmation-panel h2 { font-size: 30px; }
.confirmation-panel .button { margin: 15px 0; }
.confirmation-panel [data-kit-edit] { display: block; }
.agenda-wrap { max-width: 760px; margin-inline: auto; }
@media (min-width: 768px) {
  .kit-choice-grid, .kit-start-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kit-choice-card { padding: 30px; }
  .kit-choice-card h2 { min-height: 3.4em; }
}
@media (min-width: 1200px) {
  .kit-choice-card { padding: 36px; }
  .kit-choice-card h2 { font-size: 36px; min-height: 2.3em; }
}
.kit-choice-card > .button { min-height: 80px; }
.kit-choice-grid { grid-auto-rows: 1fr; }
/* Kit Digital: el prefijo español se muestra fuera del campo editable. */
.phone-national { display: flex; align-items: stretch; min-width: 0; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--white); }
.phone-national > span { display: inline-flex; align-items: center; padding-inline: 14px; border-right: 1px solid var(--border); background: var(--soft); color: var(--ink); font-size: 16px; }
.phone-national > input[type="tel"] { flex: 1; width: 0; border: 0; border-radius: 0; }
.phone-national:focus-within { outline: 3px solid var(--brand-dark); outline-offset: 4px; }
.phone-national > input:focus-visible { outline: none; }
.field-hint { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
/* Agenda: acceso directo al calendario, sin hero introductorio. */
.agenda-page { margin-top: 28px; padding-block: 30px; }
.agenda-page .calendar-panel h1 { font-size: 30px; letter-spacing: -1px; }

/* Todos los servicios empiezan en la agenda. */
.site-nav .nav-cta { background: var(--brand); border-color: var(--brand); color: var(--white); }
.site-nav .nav-cta:hover, .site-nav .nav-cta:focus-visible { background: var(--brand-dark); border-color: var(--brand-dark); color: var(--white); }
.site-nav .nav-whatsapp { padding: 8px 14px; border: 1px solid var(--border); border-radius: 999px; color: var(--brand-dark); justify-content: center; }
.hero--home .hero-actions { flex-wrap: wrap; gap: 12px; }
.hero--home .hero-actions > span { flex-basis: 100%; flex-shrink: 1; }
@media (max-width: 1199px) {
  .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .header-inner > .brand-link { grid-row: 1; grid-column: 1; }
  .mobile-actions { display: contents; }
  .mobile-actions .menu-toggle { grid-row: 1; grid-column: 2; justify-self: end; }
  .mobile-booking { grid-row: 2; grid-column: 1; padding: 10px 12px; font-size: 14px; min-height: 46px; }
  .mobile-whatsapp { grid-row: 2; grid-column: 2; min-height: 46px; }
  .site-nav { grid-column: 1 / -1; }
  .site-nav .nav-cta, .site-nav .nav-whatsapp { display: none; }
}
@media (max-width: 767px) {
  .hero--home .hero-actions .button { width: 100%; white-space: normal; }
}

/* Acceso directo a WhatsApp, sin scripts ni widgets externos. */
.whatsapp-float { position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom)); z-index: 50; display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 18px 18px 0 18px; background: #25D366; color: #FFFFFF; box-shadow: 0 6px 22px #2B2B2B26; text-decoration: none; transition: background .2s, transform .2s; }
.whatsapp-float svg { width: 31px; height: 31px; display: block; }
.whatsapp-float:hover { background: #128C4A; color: #FFFFFF; }
.whatsapp-float:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.site-footer { padding-bottom: 80px; }
@media (max-width: 1199px) { .mobile-booking { grid-column: 1 / -1; } }
@media (max-width: 767px) {
  .whatsapp-float { width: 56px; height: 56px; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .whatsapp-float:hover { transform: translateY(-2px); } }
/* Puente entre el título y el panel: permite bajar el ratón sin cerrar el menú. */
@media (min-width: 1200px) and (hover: hover) and (pointer: fine) {
  .services-menu[open] .mega-menu::before { content: ''; position: absolute; inset-inline: 0; top: -24px; height: 24px; }
}

/* Portfolio real: capturas y datos de portfolio-datos.json. */
.real-projects { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px 24px; }
.real-project { min-width: 0; }
.real-project-link { display: block; height: 100%; color: var(--ink); text-decoration: none; border-radius: 15px; }
.project-browser { overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: var(--white); box-shadow: 0 12px 25px color-mix(in srgb, var(--brand-dark) 7%, transparent); transition: transform .2s, box-shadow .2s; }
.project-browser-bar { display: flex; gap: 12px; align-items: center; padding: 9px 12px; min-height: 36px; background: var(--grey); border-bottom: 1px solid var(--border); font-size: 13px; line-height: 1.4; color: var(--muted); }
.project-browser-bar > span:last-child { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.project-window-dots { display: flex; gap: 4px; flex-shrink: 0; }
.project-window-dots i { display: block; width: 5px; height: 5px; background: var(--border); border-radius: 50%; }
.project-browser img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
.project-caption { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 18px 0 5px; }
.project-caption > div { min-width: 0; }
.project-caption h2, .project-caption h3 { font-size: 23px; letter-spacing: -.5px; line-height: 1.2; margin: 0 0 8px; overflow-wrap: anywhere; }
.project-caption p { font-size: 15px; line-height: 1.5; color: var(--muted); margin: 0; }
.project-type { flex-shrink: 0; border: 1px solid var(--border); border-radius: 999px; padding: 5px 10px; color: var(--brand-dark); font-size: 13px; }
.real-project-link:hover .project-browser { transform: translateY(-4px); box-shadow: 0 16px 28px color-mix(in srgb, var(--brand-dark) 12%, transparent); }
.real-project-link:hover h2, .real-project-link:hover h3 { color: var(--brand-dark); }
.portfolio-real { padding-top: 25px; }
.kit-hero-options { display: grid; gap: 12px; margin-top: 25px; }
.kit-hero-options .button { min-width: 0; min-height: 86px; padding: 12px; font-size: 16px; overflow-wrap: anywhere; }
@media (min-width: 640px) { .real-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px) { .kit-hero-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .real-projects { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .real-projects.sector-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .real-project-link:hover .project-browser { transform: none; } }

/* Landings de campañas: cabecera mínima, evidencia real y una ruta de conversión. */
.lp-page { overflow-wrap: break-word; }
.lp-header { padding: 24px 0; background: #fff; }
.lp-header > .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.lp-logo { width: 205px; height: auto; }
.lp-header .button { font-size: 16px; }
.lp-page .block { padding-block: 90px; }
.lp-page .section-heading { max-width: 830px; margin-bottom: 38px; }
.lp-page h2 { font-size: clamp(34px, 4.4vw, 58px); }
.lp-page h3 { font-size: 24px; }
.lp-hero { padding: 60px 0 80px; background: radial-gradient(ellipse at 85% 60%, #f4deed 0, transparent 60%), #fff; }
.lp-hero-grid { display: grid; grid-template-columns: 1.04fr 1fr; gap: 60px; align-items: center; }
.lp-hero h1 { font-size: clamp(52px, 5.7vw, 82px); line-height: 1.04; letter-spacing: -3px; }
.lp-hero .lead { font-size: 20px; margin-bottom: 22px; }
.lp-hero p:not(.eyebrow) { max-width: 58ch; }
.lp-dual { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 28px 0; align-items: stretch; }
.lp-dual .button { font-size: 16px; padding: 15px 20px; min-height: 76px; }
.lp-hero-proof { display: flex; align-items: center; gap: 16px; margin-top: 30px; }
.lp-hero-proof > span:last-child { font-size: 13px; line-height: 1.5; max-width: 260px; color: var(--muted); }
.lp-partner { display: inline-flex; gap: 8px; align-items: center; white-space: nowrap; font-size: 15px; font-weight: 700; border: 1px solid var(--border); border-radius: 999px; padding: 8px 13px; background: white; color: var(--ink); }
.lp-partner > span { display: grid; place-items: center; color: #226b40; border: 1px solid #b4d4c0; border-radius: 50%; width: 23px; height: 23px; }
.lp-showcase { position: relative; padding-bottom: 20px; }
.lp-showcase .lp-project:first-child { transform: rotate(-3deg); width: 92%; }
.lp-showcase .lp-project:nth-child(2) { width: 76%; margin: -50px 0 0 auto; position: relative; transform: rotate(3deg); }
.lp-showcase .lp-project figcaption { background: #fff; padding: 10px 14px; font-size: 13px; }
.lp-showcase .project-browser, .lp-legal-visual .project-browser { box-shadow: 0 22px 45px #49233e20; }
.lp-project { min-width: 0; overflow: hidden; border-radius: 16px; border: 1px solid var(--border); background: white; }
.lp-project .project-browser { border: 0; border-radius: 0; }
.lp-project img { width: 100%; height: auto; }
.lp-project figcaption { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 18px 20px; font-size: 15px; color: var(--ink); }
.lp-project figcaption span { color: var(--muted); font-size: 13px; }
.lp-project .project-browser-bar { font-size: 13px; min-height: 33px; }
.lp-iva { background: white; position: relative; border: 1px solid var(--border); border-radius: 18px; padding: 20px 24px; width: 92%; margin: 22px 0 0; }
.lp-iva strong { font: 700 24px/1.3 var(--font-heading); color: var(--brand-dark); display: block; margin-bottom: 8px; }
.lp-iva span { font-size: 14px; line-height: 1.5; display: block; }
.lp-page .lp-trust { padding-block: 48px; border-block: 1px solid var(--border); }
.lp-trust .section-heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.lp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.lp-stats div { display: flex; flex-direction: column; border-left: 1px solid var(--border); padding-left: 28px; }
.lp-stats strong { font: 700 43px/1.2 var(--font-heading); color: var(--brand-dark); margin-bottom: 8px; }
.lp-stats span { font-size: 15px; }
.lp-cards { display: grid; gap: 22px; }
.lp-three { grid-template-columns: repeat(3, 1fr); }
.lp-two { grid-template-columns: repeat(2, 1fr); }
.lp-cards article { border: 1px solid var(--border); border-radius: 22px; padding: 32px; background: #fff; transition: transform .25s, box-shadow .25s; }
@media (hover: hover) { .lp-cards article:hover { transform: translateY(-4px); box-shadow: 0 12px 30px #873c7310; } }
.lp-cards article p:last-child { margin-bottom: 0; }
.lp-card-label { display: block; font-size: 13px; text-transform: uppercase; letter-spacing: 1.3px; font-weight: 700; color: var(--brand-dark); margin-bottom: 24px; }
.lp-solution-price { font: 700 40px/1.3 var(--font-heading); color: var(--brand-dark); margin-bottom: 12px; }
.lp-solution-price span { display: inline-block; font: 400 15px/1.5 var(--font-body); color: var(--muted); margin-left: 12px; }
.lp-amount { display: inline-block; border-radius: 999px; background: var(--soft); color: var(--brand-dark); padding: 7px 13px; font-weight: 700; font-size: 15px; }
.lp-included { display: grid; grid-template-columns: 1fr 1.7fr; gap: 35px; padding: 32px 0 0; margin-top: 16px; }
.lp-included strong { font: 700 24px/1.3 var(--font-heading); }
.lp-included p { margin: 0; }
.lp-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; counter-reset: lp-steps; }
.lp-steps li { counter-increment: lp-steps; border-top: 1px solid var(--border); padding-top: 22px; }
.lp-steps li::before { content: '0' counter(lp-steps); display: block; font: 700 42px/1.1 var(--font-heading); color: var(--brand); margin-bottom: 30px; }
.lp-steps h3 { font-size: 22px; }
.lp-work-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.lp-page .review-cards { display: grid; grid-template-columns: repeat(3, 1fr); }
.lp-page .review-card { background: white; }
.lp-reviews { background: var(--soft); }
.lp-reviews-link { margin-top: 26px; }
.lp-faq { max-width: 900px; }
.lp-faq details { border-top: 1px solid var(--border); padding: 22px 0; }
.lp-faq details:last-child { border-bottom: 1px solid var(--border); }
.lp-faq summary { font: 700 21px/1.4 var(--font-heading); cursor: pointer; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; }
.lp-faq summary::-webkit-details-marker { display: none; }
.lp-faq summary::after { content: '+'; font: 400 30px/1 var(--font-body); color: var(--brand-dark); }
.lp-faq details[open] summary::after { content: '−'; }
.lp-faq details p { margin: 18px 40px 0 0; max-width: 74ch; }
.lp-form-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; align-items: start; }
.lp-form-layout .form-panel { margin: 0; min-width: 0; }
.lp-form-layout .form-panel h2 { font-size: 30px; }
.lp-form-layout .form-grid { grid-template-columns: 1fr 1fr; }
.lp-call-card { padding: 26px; border: 1px solid var(--border); border-radius: 20px; background: white; margin-top: 30px; }
.lp-call-card .button { font-size: 16px; }
.lp-close { text-align: center; background: radial-gradient(ellipse at 50% 110%, #e1b9d6 0, #f8edf5 65%, #fff 100%); }
.lp-close .section-heading { margin-inline: auto; }
.lp-close .eyebrow { justify-content: center; }
.lp-close .lp-dual { max-width: 740px; margin: 0 auto; }
.lp-funding { padding-block: 28px; background: white; }
.lp-funding img { width: 100%; height: auto; object-fit: contain; }
.lp-footer { padding: 22px 0; border-top: 1px solid var(--border); background: white; }
.lp-footer .container { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 25px; }
.lp-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--muted); text-decoration: none; }
.lp-footer a:hover { color: var(--brand-dark); }
.lp-dark { background: #29232b; color: white; }
.lp-dark .eyebrow, .lp-dark .accent { color: #e5acd7; }
.lp-dark .lead, .lp-dark .lp-hero-proof > span:last-child { color: #e2d7df; }
.lp-dark .button--primary { background: #cb71b4; border-color: #cb71b4; color: #201822; }
.lp-dark .button--primary:hover { background: #e5acd7; }
.lp-legal-visual .lp-project { transform: rotate(2deg); }
.lp-result-teaser { position: relative; margin: -10px 28px 0 -20px; padding: 26px; border: 1px solid #aa739f; border-radius: 20px; background: #382e3b; box-shadow: 0 20px 45px #0002; }
.lp-result-teaser > span { display: block; font-size: 14px; }
.lp-result-teaser strong { display: block; font: 700 68px/1.2 var(--font-heading); color: #efc5e5; margin: 10px 0; }
.lp-result-teaser small { font: 400 22px/1.4 var(--font-body); color: white; }
.lp-before-after { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border); border-radius: 24px; overflow: hidden; }
.lp-before-after article { padding: 36px; }
.lp-before-after article:last-child { background: white; }
.lp-before-after article p { padding-top: 18px; border-top: 1px solid var(--border); }
.lp-before-after article p:last-child { margin-bottom: 0; }
.lp-launch { display: grid; grid-template-columns: 1fr auto; gap: 50px; background: #29232b; color: white; border-radius: 24px; padding: 40px; }
.lp-launch strong { font: 700 62px/1.1 var(--font-heading); display: block; }
.lp-launch span { display: block; margin-top: 10px; font-size: 15px; }
.lp-launch p { margin-bottom: 0; max-width: 64ch; }
.lp-phases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; list-style: none; padding: 32px 0 0; }
.lp-phases li { border-top: 1px solid var(--border); padding-top: 20px; }
.lp-phases span { display: block; color: var(--brand-dark); font-weight: 700; margin-bottom: 12px; }
.lp-plans { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.lp-plans article { min-width: 0; padding: 26px 22px; border: 1px solid var(--border); border-radius: 20px; background: white; }
.lp-plans h3 { font-size: 37px; color: var(--brand-dark); margin-bottom: 5px; }
.lp-plans h3 span { font: 400 14px/1.5 var(--font-body); display: block; color: var(--muted); }
.lp-plans ul { padding: 22px 0 0; margin: 22px 0 0; border-top: 1px solid var(--border); list-style: none; }
.lp-plans li { font-size: 15px; margin-bottom: 18px; }
.lp-plans li:last-child { margin-bottom: 0; }
.lp-plan-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; padding-block: 35px 14px; }
.lp-partner-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 70px; align-items: center; }
.lp-big-number { font: 700 66px/1.1 var(--font-heading); color: #efc5e5; margin: 28px 0 15px; letter-spacing: -2px; }
.lp-big-number span { font-size: 28px; display: block; letter-spacing: 0; margin-top: 10px; }
.lp-proof-list { padding: 0; list-style: none; }
.lp-proof-list li { border-top: 1px solid #7d6479; padding: 14px 0; }
.lp-partner-evidence { min-width: 0; }
.lp-partner-crop { border: 7px solid #fff; border-radius: 20px; overflow: hidden; background: #fff; }
.lp-partner-crop img { width: 100%; height: auto; margin-top: -19%; }
.lp-partner-evidence figcaption { font-size: 13px; color: #e2d7df; margin-top: 14px; }
.lp-case-intro { max-width: 72ch; font-size: 20px; }
.lp-case-stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 30px; padding-block: 25px 35px; }
.lp-case-stats strong { display: block; font: 700 clamp(34px, 4.7vw, 64px)/1.2 var(--font-heading); color: var(--brand-dark); letter-spacing: -1.5px; }
.lp-case-stats span { display: block; font-size: 15px; margin-top: 10px; }
.lp-evidence-browser { border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: 0 12px 30px #873c7310; }
.lp-evidence-browser img { width: 100%; }
.lp-evidence-browser .project-browser-bar { min-height: 38px; font-size: 13px; }
.lp-case-evidence figcaption { font-size: 14px; margin: 18px 0 10px; max-width: 95ch; }
.lp-case-evidence .small { font-size: 13px; }
.lp-case-secondary { display: flex; flex-wrap: wrap; gap: 16px 36px; margin-top: 25px; }
.lp-case-secondary span { padding-block: 12px; border-top: 1px solid var(--border); font-size: 15px; }
.lp-result-note { padding-left: 20px; border-left: 3px solid var(--brand); margin: 25px 0 0; font-size: 15px; }
.lp-victor { display: grid; grid-template-columns: 1.4fr 1fr; gap: 60px; align-items: center; }
@media (max-width: 1000px) {
 .lp-hero-grid { gap: 32px; }
 .lp-hero h1 { font-size: 60px; }
 .lp-hero .lead { font-size: 18px; }
 .lp-dual { grid-template-columns: 1fr; }
 .lp-dual .button { min-height: 56px; }
 .lp-hero-proof { flex-wrap: wrap; }
 .lp-three { gap: 14px; }
 .lp-cards article { padding: 24px; }
 .lp-plans { grid-template-columns: 1fr 1fr; }
 .lp-partner-layout { gap: 35px; }
 .lp-big-number { font-size: 50px; }
 .lp-form-layout { gap: 30px; grid-template-columns: .8fr 1.2fr; }
 .lp-form-layout .form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
 .lp-header { padding-block: 16px; }
 .lp-logo { width: 135px; }
 .lp-header > .container { gap: 12px; }
 .lp-header .button { font-size: 13px; padding: 10px 15px; min-height: 44px; }
 .lp-page .block { padding-block: 58px; }
 .lp-hero { padding: 35px 0 50px; }
 .lp-hero-grid { grid-template-columns: 1fr; gap: 40px; }
 .lp-hero h1 { font-size: clamp(43px, 11.6vw, 65px); letter-spacing: -2px; }
 .lp-hero .eyebrow { font-size: 13px; letter-spacing: .7px; }
 .lp-hero .lead { font-size: 18px; }
 .lp-dual { grid-template-columns: 1fr; gap: 12px; }
 .lp-dual .button { min-height: 58px; font-size: 16px; padding: 14px 20px; }
 .lp-hero-proof { flex-wrap: nowrap; gap: 12px; align-items: flex-start; }
 .lp-partner { font-size: 13px; padding: 7px 10px; }
 .lp-hero-proof > span:last-child { font-size: 13px; }
 .lp-showcase { padding: 8px 5px 0; }
 .lp-showcase .lp-project:nth-child(2) { margin-top: -24px; }
 .lp-project .project-browser-bar { font-size: 13px; min-height: 30px; }
 .lp-project .project-window-dots { display: none; }
 .lp-project figcaption { flex-direction: column; align-items: flex-start; gap: 3px; padding: 14px 16px; }
 .lp-showcase .lp-project figcaption { padding: 8px 11px; }
 .lp-showcase .lp-project figcaption span { display: none; }
 .lp-iva { width: 100%; padding: 20px; }
 .lp-iva strong { font-size: 23px; }
 .lp-stats { grid-template-columns: 1fr 1fr; gap: 26px 15px; }
 .lp-stats div { padding-left: 15px; }
 .lp-stats strong { font-size: 31px; }
 .lp-stats span { font-size: 13px; }
 .lp-three, .lp-two, .lp-included, .lp-work-grid, .lp-page .review-cards, .lp-before-after, .lp-partner-layout, .lp-form-layout, .lp-victor, .lp-plan-notes { grid-template-columns: 1fr; }
 .lp-cards article { padding: 28px; }
 .lp-included { gap: 16px; }
 .lp-steps { grid-template-columns: 1fr 1fr; gap: 24px; }
 .lp-steps li::before { font-size: 34px; margin-bottom: 18px; }
 .lp-steps h3 { font-size: 21px; }
 .lp-steps p { font-size: 15px; }
 .lp-work-grid { gap: 25px; }
 .lp-faq summary { font-size: 19px; }
 .lp-faq details p { margin-right: 15px; }
 .lp-form-layout .form-panel { padding: 24px 20px; }
 .lp-form-layout input { min-width: 0; }
 .lp-form-layout .phone-national { min-width: 0; }
 .lp-form-layout .data-note, .lp-form-layout .prototype-note { font-size: 13px; }
 .lp-call-card { padding: 24px; }
 .lp-legal-visual { padding: 8px 5px 0; }
 .lp-result-teaser { margin: -5px 10px 0; padding: 22px; }
 .lp-result-teaser strong { font-size: 55px; }
 .lp-result-teaser small { font-size: 19px; }
 .lp-before-after article { padding: 28px; }
 .lp-launch { grid-template-columns: 1fr; padding: 28px; gap: 28px; }
 .lp-launch strong { font-size: 54px; }
 .lp-phases { grid-template-columns: 1fr; gap: 15px; }
 .lp-plans { gap: 12px; }
 .lp-plans article { padding: 22px 17px; }
 .lp-plans h3 { font-size: 32px; }
 .lp-plans .lp-card-label { font-size: 13px; letter-spacing: .2px; }
 .lp-plans li { font-size: 14px; }
 .lp-plan-notes { gap: 15px; }
 .lp-big-number { font-size: 55px; }
 .lp-partner-layout { gap: 24px; }
 .lp-case-stats { grid-template-columns: 1fr 1fr; gap: 25px 12px; }
 .lp-case-stats div:last-child { grid-column: 1 / -1; }
 .lp-case-stats strong { font-size: 38px; }
 .lp-case-stats span { font-size: 13px; }
 .lp-case-secondary { gap: 8px 20px; }
 .lp-case-evidence figcaption { font-size: 13px; }
 .lp-evidence-browser .project-window-dots { display: none; }
 .lp-victor { gap: 20px; }
 .lp-page .lp-close .button { width: 100%; }
 .lp-page .lp-funding { width: calc(100% - 24px); padding-block: 20px; }
}
.lp-inline-trust { font-weight: 700; color: var(--brand-dark); font-size: 14px; }
@media (min-width: 701px) {
 .lp-showcase .lp-project:nth-child(2) { width: 70%; margin-top: -140px; }
 .lp-showcase .lp-project figcaption { flex-direction: column; gap: 0; align-items: flex-start; }
 .lp-showcase .lp-project figcaption span { display: none; }
}
.lp-legal-visual > .lp-evidence-browser { transform: rotate(2deg); background: white; padding-bottom: 40px; }
.lp-legal-visual .lp-result-teaser { margin-top: -15px; }
.lp-legal-visual > .lp-evidence-browser img { aspect-ratio: 1750 / 300; height: auto; }
.hero-copy > .lp-hero-proof { margin: 0 0 24px; }
.lp-dark .lp-inline-trust { color: #e2d7df; }
/* Documentos legales literales y preferencias de cookies. */
.legal-document { padding-top: 55px; }
.legal-document .legal-copy { max-width: 920px; }
.legal-copy > h1 { font-size: clamp(37px, 5vw, 62px); letter-spacing: -1.8px; margin-bottom: 28px; }
.legal-copy h3 { font-size: 23px; margin-top: 35px; }
.legal-copy li { margin-bottom: 12px; line-height: 1.8; }
.legal-copy code { font-size: .95em; overflow-wrap: anywhere; }
.legal-table { max-width: 100%; margin: 28px 0; border: 1px solid var(--border); border-radius: 12px; overflow-x: auto; }
.legal-table table { width: 100%; min-width: 640px; margin: 0; border: 0; font-size: 15px; }
.legal-table th, .legal-table td { vertical-align: top; padding: 15px 18px; white-space: normal; min-width: 145px; line-height: 1.65; }
.legal-table th { background: var(--soft); }
.legal-table td { border-top: 1px solid var(--border); }
.legal-table a { overflow-wrap: anywhere; }
.legal-copy a { overflow-wrap: anywhere; }
.legal-copy .legal-table td:first-child { min-width: 180px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; flex-shrink: 0; }
.cookie-actions .button, .cookie-actions .text-link { font-size: 15px; min-height: 44px; }
.cookie-actions .button { flex: 1; }
.cookie-dialog { width: min(620px, calc(100% - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 30px; border: 1px solid var(--border); border-radius: 22px; color: var(--ink); background: white; }
.cookie-dialog::backdrop { background: #20182388; }
.cookie-dialog-head { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.cookie-dialog h2 { font-size: 30px; letter-spacing: -1px; }
.cookie-close { min-height: 44px; border: 1px solid var(--border); border-radius: 999px; padding: 8px 14px; background: white; color: var(--brand-dark); font-size: 14px; }
.cookie-option { display: flex; gap: 16px; align-items: start; padding: 22px 0; border-top: 1px solid var(--border); cursor: pointer; }
.cookie-option input { width: 22px; height: 22px; flex-shrink: 0; accent-color: var(--brand-dark); margin-top: 4px; }
.cookie-option span span { display: block; font-size: 15px; margin-top: 7px; }
.cookie-dialog .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
.cookie-save { width: 100%; margin-top: 12px; }
@media (max-width: 700px) {
 .legal-document { padding-top: 35px; }
 .legal-copy h2 { font-size: 25px; letter-spacing: -.6px; }
 .legal-copy ul, .legal-copy ol { padding-left: 24px; }
 .legal-table table { font-size: 14px; }
 .cookie-dialog { padding: 23px; }
 .cookie-dialog h2 { font-size: 26px; }
 .cookie-dialog p { font-size: 15px; }
}
.elite-redesign .review-band { padding-block: 18px; }
.elite-redesign .site-footer h2 { font-size: 16px; letter-spacing: 0; margin-bottom: 15px; }
.elite-redesign .lp-hero { padding-block: 50px 65px; }
@media (max-width: 700px) { .elite-redesign .lp-hero { padding-block: 35px 50px; } }
/* Cinco soluciones del Kit Digital, con el mismo componente de navegación. */
.kit-menu .mega-card strong { font-size: 19px; margin-top: 0; }
.kit-menu .mega-card { padding: 18px 20px; }
.kit-menu .mega-bottom { grid-column: 1 / -1; border-top: 1px solid var(--border); }
.kit-menu > summary[aria-current='page'] { color: var(--brand-dark); }
.kd-status { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-block: 18px 0; }
.kd-status .status-label { font-size: 13px; }
.kd-solution .review-band { padding-block: 20px 0; }
.kd-solution .block { padding-block: 75px; }
.kd-solution .kd-hero { padding-block: 45px 65px; background: radial-gradient(ellipse at 85% 55%, #f3deed 0, #fff 65%); }
.kd-hero-grid { display: grid; grid-template-columns: 1.03fr 1fr; gap: 60px; align-items: center; }
.kd-hero h1 { font-size: clamp(48px, 5.7vw, 80px); line-height: 1.08; letter-spacing: -2.6px; }
.kd-hero .lead { font-size: 19px; }
.kd-actions { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 14px; margin-top: 28px; }
.kd-actions .button { min-height: 70px; font-size: 16px; padding: 14px 20px; }
.kd-price-teaser { display: flex; flex-direction: column; gap: 8px; margin: 24px 0; padding-left: 20px; border-left: 3px solid var(--brand); }
.kd-price-teaser > span { font-size: 14px; }
.kd-price-teaser strong { font: 700 38px/1.2 var(--font-heading); color: var(--brand-dark); }
.kd-price-teaser strong span { font: 400 17px/1.4 var(--font-body); }
.kd-hero-visual { min-width: 0; padding: 12px 6px; }
.kd-browser { background: white; border: 1px solid var(--border); border-radius: 18px; overflow: hidden; transform: rotate(-2deg); box-shadow: 0 25px 65px #873c7320; }
.kd-browser img { width: 100%; }
.kd-browser figcaption { padding: 16px 20px; font-size: 14px; color: var(--muted); }
.kd-visual-caption { margin: 25px 0 0 30px; padding: 22px 24px; background: #fff; border: 1px solid var(--border); border-radius: 18px; }
.kd-visual-caption strong { display: block; font: 700 23px/1.3 var(--font-heading); color: var(--brand-dark); }
.kd-visual-caption span { display: block; margin-top: 8px; font-size: 15px; }
.kd-solution .funding-band { padding-block: 24px; }
.kd-phase-layout { display: grid; grid-template-columns: .65fr 2fr; gap: 55px; }
.kd-phase-layout aside { font-size: 17px; }
.kd-phase-name { display: block; font: 700 25px/1.3 var(--font-heading); color: var(--brand-dark); margin-bottom: 16px; }
.kd-feature-list { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.kd-feature-list article { position: relative; border-top: 1px solid var(--border); padding-top: 23px; }
.kd-feature-list h3 { font-size: 23px; line-height: 1.25; }
.kd-feature-list p { font-size: 16px; margin-bottom: 0; }
.kd-dark { background: #2b252d; color: #fff; }
.kd-dark .eyebrow { color: #e5acd7; }
.kd-exclusions { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 40px; }
.kd-exclusions li { border-top: 1px solid #785c72; padding-top: 19px; font-size: 18px; }
.kd-price-table { border: 1px solid var(--border); border-radius: 18px; overflow-x: auto; margin-bottom: 24px; }
.kd-price-table table { margin: 0; min-width: 650px; width: 100%; border: 0; }
.kd-price-table th, .kd-price-table td { vertical-align: top; padding: 22px 25px; font-size: 17px; line-height: 1.5; white-space: normal; }
.kd-price-table thead th { background: var(--soft); }
.kd-price-table tbody td { font-weight: 700; color: var(--brand-dark); }
.kd-steps { display: grid; grid-template-columns: repeat(5,1fr); gap: 25px; list-style: none; counter-reset: kd-step; padding: 0; }
.kd-steps li { counter-increment: kd-step; border-top: 1px solid var(--border); padding-top: 20px; }
.kd-steps li::before { content: '0' counter(kd-step); display: block; color: var(--brand); font: 700 35px/1.2 var(--font-heading); margin-bottom: 20px; }
.kd-steps h3 { font-size: 21px; }
.kd-steps p { font-size: 15px; }
.kd-projects { grid-template-columns: repeat(2,1fr); margin-bottom: 28px; }
.kd-solution .review-cards { display: grid; grid-template-columns: repeat(3,1fr); }
.kd-close { text-align: center; background: linear-gradient(#fff,var(--soft)); }
.kd-close .section-heading { margin-inline: auto; }
.kd-close .eyebrow { justify-content: center; }
.kd-close .kd-actions { max-width: 760px; margin-inline: auto; }
.kd-brand-list { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
.kd-brand-list span { padding: 16px 23px; border: 1px solid var(--border); border-radius: 999px; font: 700 21px/1.4 var(--font-heading); }
.kd-social-visual { border: 1px solid var(--border); border-radius: 25px; background: white; padding: 25px; transform: rotate(2deg); box-shadow: 0 25px 65px #873c7320; }
.kd-visual-top span { display: block; font-size: 14px; color: var(--muted); }
.kd-visual-top strong { display: block; font: 700 32px/1.3 var(--font-heading); margin: 6px 0 22px; }
.kd-post-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kd-post-grid > div { background: var(--soft); padding: 22px 18px; min-height: 155px; border-radius: 14px; display: flex; flex-direction: column; justify-content: space-between; }
.kd-post-grid > div:nth-child(2), .kd-post-grid > div:nth-child(3) { background: #4c3045; color: white; }
.kd-post-grid span { font-size: 13px; }
.kd-post-grid strong { font: 700 24px/1.2 var(--font-heading); }
.kd-social-visual .kd-visual-caption { margin: 18px 0 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; }
.kd-search-visual { background: white; border: 1px solid var(--border); border-radius: 25px; padding: 28px; box-shadow: 0 25px 65px #873c7320; }
.kd-search-question { padding: 24px; background: var(--soft); border-radius: 18px; }
.kd-search-question span, .kd-search-answer > span { font-size: 13px; color: var(--brand-dark); }
.kd-search-question strong { display: block; font: 700 28px/1.25 var(--font-heading); margin-top: 12px; }
.kd-search-path { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 22px; }
.kd-search-path span { padding: 7px 13px; border: 1px solid var(--border); border-radius: 999px; font-size: 13px; }
.kd-search-answer { border-left: 3px solid var(--brand); padding-left: 22px; }
.kd-search-answer h3 { margin-top: 15px; font-size: 27px; }
.kd-search-answer p { font-size: 16px; }
.kd-visual-note { font-size: 13px; color: var(--muted); margin: 24px 0 0; }
.kd-device-visual { padding: 24px 8px; }
.kd-device-screen { padding: 38px; border: 10px solid #453443; border-radius: 24px 24px 8px 8px; background: linear-gradient(135deg,#f8edf5,#e1b9d6); }
.kd-device-screen span { display: block; font-size: 14px; }
.kd-device-screen strong { display: block; font: 700 47px/1.1 var(--font-heading); color: var(--brand-dark); margin: 22px 0; }
.kd-device-base { height: 15px; background: #a89ca5; width: calc(100% + 20px); margin-left: -10px; border-radius: 0 0 40% 40%; }
.kd-device-note { margin-top: 24px; padding: 20px; background: white; border: 1px solid var(--border); border-radius: 16px; font-size: 16px; text-align: center; }
@media (min-width: 1200px) {
 .kit-menu .mega-cards { grid-template-columns: repeat(3,1fr); }
 .kit-menu .kit-mega { grid-template-columns: .65fr 2.35fr; gap: 22px; }
}
@media (max-width: 1000px) {
 .kd-hero-grid { gap: 30px; }
 .kd-hero h1 { font-size: 59px; }
 .kd-actions { grid-template-columns: 1fr; }
 .kd-phase-layout { grid-template-columns: 1fr; gap: 20px; }
 .kd-steps { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 700px) {
 .kd-solution .block { padding-block: 55px; }
 .kd-solution .kd-hero { padding-block: 30px 45px; }
 .kd-status { align-items: flex-start; gap: 10px; }
 .kd-status .status-label { font-size: 13px; padding: 9px 10px; }
 .kd-status .text-link { font-size: 13px; padding: 9px 12px; }
 .kd-hero-grid { grid-template-columns: 1fr; gap: 28px; }
 .kd-hero h1 { font-size: clamp(43px,11.3vw,60px); letter-spacing: -1.8px; }
 .kd-hero .eyebrow { letter-spacing: .6px; }
 .kd-hero .lead { font-size: 18px; }
 .kd-actions { grid-template-columns: 1fr; }
 .kd-actions .button { min-height: 62px; }
 .kd-price-teaser strong { font-size: 34px; }
 .kd-feature-list, .kd-exclusions, .kd-projects, .kd-solution .review-cards { grid-template-columns: 1fr; }
 .kd-feature-list { gap: 25px; }
 .kd-price-table th, .kd-price-table td { font-size: 15px; padding: 17px; }
 .kd-steps { grid-template-columns: 1fr 1fr; gap: 20px; }
 .kd-steps li:last-child { grid-column: 1 / -1; }
 .kd-visual-caption { margin-left: 12px; padding: 20px; }
 .kd-browser figcaption { font-size: 13px; padding: 14px; }
 .kd-social-visual, .kd-search-visual { padding: 20px; }
 .kd-post-grid > div { min-height: 135px; padding: 17px 14px; }
 .kd-post-grid strong { font-size: 21px; }
 .kd-search-question { padding: 20px; }
 .kd-search-question strong { font-size: 25px; }
 .kd-device-screen { padding: 27px; }
 .kd-device-screen strong { font-size: 43px; }
 .kd-brand-list span { font-size: 17px; }
 .kd-solution .funding-band { padding-block: 20px; }
 .kit-menu .mega-card strong { font-size: 19px; }
}
.kd-solution .review-band { padding-block: 16px 0; }
/* Catálogo solicitado: modelos y fotografías reales de la página de referencia. */
.kd-hardware-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 30px; }
.kd-hardware-filters button[aria-pressed='true'] { background: var(--brand-dark); color: white; border-color: var(--brand-dark); }
.kd-hardware-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; margin-bottom: 24px; }
.kd-hardware-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: white; }
.kd-hardware-card[hidden] { display: none; }
.kd-hardware-photo { height: 230px; padding: 25px 20px; display: flex; align-items: center; justify-content: center; background: #fff; border-bottom: 1px solid #f4e7f0; }
.kd-hardware-photo img { height: 100%; width: 100%; object-fit: contain; }
.kd-hardware-copy { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.kd-hardware-type { font-size: 13px; text-transform: uppercase; font-weight: 700; letter-spacing: 1px; color: var(--brand-dark); margin-bottom: 15px; }
.kd-hardware-copy h3 { font-size: 22px; line-height: 1.25; }
.kd-hardware-short { font-size: 15px; color: var(--muted); }
.kd-hardware-copy details { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--border); }
.kd-hardware-copy summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; cursor: pointer; font-size: 15px; color: var(--brand-dark); font-weight: 700; list-style: none; }
.kd-hardware-copy summary::-webkit-details-marker { display: none; }
.kd-hardware-copy summary::after { content: '+'; font-size: 24px; }
.kd-hardware-copy details[open] summary::after { content: '−'; }
.kd-hardware-copy dl { margin: 10px 0 0; }
.kd-hardware-copy dl > div { padding: 10px 0; border-top: 1px solid #f4e7f0; }
.kd-hardware-copy dt { font-size: 13px; color: var(--muted); }
.kd-hardware-copy dd { margin: 5px 0 0; font-size: 15px; }
.kd-device-note .text-link { margin-top: 15px; }
@media (min-width: 701px) and (max-width: 1050px) { .kd-hardware-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) {
 .kd-hardware-grid { grid-template-columns: 1fr; }
 .kd-hardware-photo { height: 230px; }
 .kd-hardware-copy { padding: 24px; }
 .kd-hardware-filters { gap: 8px; }
}
@media (max-width: 700px) { .kd-actions .button { padding-inline: 50px; } }

/* Opiniones: marca original de Google y nota real facilitada el 04/11/2026. */
.google-summary { flex-shrink: 0; gap: 12px; }
.google-brand-mark { width: 36px; height: 36px; flex: 0 0 36px; }
.google-summary .google-review-details > span { display: block; font-size: 13px; color: var(--muted); }
.google-summary .google-review-details .google-rating { display: flex; gap: 7px; align-items: center; line-height: 1.25; margin-bottom: 3px; }
.google-rating b { font-size: 17px; color: var(--ink); }
.google-rating-stars { display: inline-block; position: relative; color: #DADCE0; font: 16px/1.2 Arial, sans-serif; letter-spacing: 1px; }
.google-rating-stars::before { content: '★★★★★'; }
.google-rating-stars > span { position: absolute; inset: 0 auto 0 0; width: 94%; overflow: hidden; white-space: nowrap; color: #FABB05; }
.review-stars { color: #FABB05; }
.kit-agent-proof { margin-top: 22px; max-width: 53ch; font-size: 14px; }
.kit-agent-proof p { margin-bottom: 8px; }
.kit-agent-proof a { font-size: 14px; }
.mockup-visual img[data-real-hero], .service-visual--mockup img[data-real-hero] { aspect-ratio: 8 / 5; object-fit: cover; border: 1px solid var(--border); }
/* Un espacio estable para imágenes y textos, antes y después de filtrar. */
[data-filter-grid] { min-block-size: 430px; align-items: start; }
[data-filter-grid] .project-browser img { aspect-ratio: 8 / 5; }
[data-filter-grid] .project-caption { min-block-size: 118px; }
@media (max-width: 420px) {
 .google-summary { gap: 8px; }
 .google-brand-mark { width: 30px; height: 30px; flex-basis: 30px; }
 .google-rating-stars { font-size: 14px; letter-spacing: 0; }
 .review-band-inner { gap: 12px; }
}

/* Portfolio de webs, redes y posicionamiento: mismos componentes y navegación local. */
.portfolio-tabs-container { padding-bottom: 20px; }
.portfolio-tabs [role="tablist"] { display: flex; flex-wrap: wrap; gap: 10px; }
.portfolio-tabs [role="tab"] { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 1px solid var(--border); border-radius: 999px; text-decoration: none; font-size: 15px; font-weight: 700; color: var(--brand-dark); background: var(--white); transition: background .18s, box-shadow .18s; }
.portfolio-tabs [role="tab"]:hover { background: var(--soft); box-shadow: 0 4px 18px #873C7314; }
.portfolio-tabs [aria-selected="true"] { background: var(--brand); border-color: var(--brand); color: var(--white); }
html.js [data-portfolio-panel] { display: none; }
html.js[data-portfolio-tab="webs"] [data-portfolio-panel="webs"], html.js[data-portfolio-tab="redes"] [data-portfolio-panel="redes"], html.js[data-portfolio-tab="posicionamiento"] [data-portfolio-panel="posicionamiento"] { display: block; }
.portfolio-panel[hidden] { display: none !important; }
.portfolio-panel > .case-examples { padding-top: 25px; }
.social-cases, .seo-cases { display: grid; gap: 24px; }
.social-case, .seo-case { min-width: 0; border: 1px solid var(--border); border-radius: 22px; background: var(--white); padding: 24px; box-shadow: 0 10px 30px #873C7308; }
.social-case h3, .seo-case h3 { font-size: 26px; margin-bottom: 8px; }
.case-description { color: var(--muted); font-size: 16px; margin-bottom: 14px; }
.case-profile { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; padding: 8px 14px; border-radius: 999px; background: var(--soft); color: var(--brand-dark); text-decoration: none; font-size: 14px; overflow-wrap: anywhere; }
.case-profile:hover { background: var(--brand-dark); color: var(--white); }
.case-growth { margin: 22px 0; }
.case-growth p { margin-bottom: 4px; font-size: 18px; line-height: 1.35; }
.case-growth strong { color: var(--brand-dark); font-size: 23px; }
.case-growth > span { font-size: 14px; color: var(--muted); }
.social-case-posts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; align-self: center; }
.social-case-posts a { display: block; min-width: 0; aspect-ratio: 1; overflow: hidden; border-radius: 12px; background: var(--soft); }
.social-case-posts img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; transition: transform .25s; }
.social-case-posts a:hover img { transform: scale(1.045); }
.case-block-actions { display: flex; justify-content: center; margin-top: 32px; }
.seo-case { display: flex; flex-direction: column; }
.case-searches { padding: 0; margin: 24px 0; list-style: none; }
.case-searches li { border-top: 1px solid var(--border); padding: 18px 0; }
.search-term { display: block; font-size: 17px; font-weight: 700; color: var(--ink); margin-bottom: 10px; }
.search-positions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.search-position { border-radius: 999px; padding: 5px 12px; background: #E9F5EE; color: #21633C; font-size: 14px; font-weight: 700; }
.search-before { color: var(--muted); font-size: 14px; }
.case-visits { border-top: 1px solid var(--border); padding-top: 20px; margin-top: auto; margin-bottom: 0; }
.case-visits strong { display: block; color: var(--brand-dark); font-size: 32px; line-height: 1.25; }
.case-visits span { display: block; color: var(--muted); font-size: 15px; }
.seo-source-note { margin-top: 24px; color: var(--muted); }
@media (min-width: 768px) {
 .social-case { display: grid; grid-template-columns: minmax(210px,1fr) minmax(0,2fr); gap: 28px; align-items: center; padding: 28px; }
 .case-growth { margin-bottom: 0; }
 .seo-cases { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
 .social-case, .seo-case { padding: 18px; border-radius: 18px; }
 .social-case-posts { gap: 6px; }
 .social-case-posts a { border-radius: 8px; }
 .portfolio-tabs [role="tab"] { padding: 10px 15px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .social-case-posts img { transition: none; } }
.portfolio-tabs [role="tab"][aria-selected="true"], .portfolio-tabs [role="tab"][aria-selected="true"]:hover { background: var(--brand); border-color: var(--brand); color: var(--white); }

/* Élite: la preparación inicial forma parte de la cuota mensual. */
.launch-price--included { max-width: 300px; min-width: 0; white-space: normal; }
.launch-price--included strong, .lp-launch .launch-price--included strong { display: block; font: 700 clamp(25px, 2.8vw, 34px)/1.15 var(--font-heading); }
.launch-price--included .launch-included-note { display: block; font: 400 15px/1.6 var(--font-body); margin-top: 10px; }
[data-elite-start] { margin-top: 16px; margin-bottom: 0; }
.lp-dark .hero-price-line { color: #e2d7df; }
.lp-dark .hero-price-line strong { color: #FFFFFF; }
.hero-price-line { margin-bottom: 20px; }

/* Consulta gratuita · misma identidad, nueva estructura de servicio. */
.consulta-hero{padding:56px 0 64px!important}.consulta-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}.consulta-copy{padding-top:20px;min-width:0}.consulta-title h1{font-size:clamp(42px,4.9vw,74px);line-height:1.07;letter-spacing:-.045em;margin:22px 0}.consulta-copy .lead{font-size:20px;line-height:1.6;max-width:34em}.consulta-price{font-size:18px;font-weight:800;margin:20px 0}.consulta-benefits{padding:0;list-style:none;margin:26px 0;display:grid;gap:17px}.consulta-benefits li{display:flex;gap:12px;font-size:16px;line-height:1.5}.consulta-benefits li>span{color:#B45099;font-size:20px;font-weight:900;flex:none}.consulta-trust{display:flex;gap:14px 18px;align-items:center;flex-wrap:wrap;border-top:1px solid #e1b9d6;padding-top:24px;font-size:14px}.consulta-trust>.lp-partner{font-size:16px;padding:10px 14px}.consulta-trust>span:last-child{flex-basis:100%;font-weight:700}.consulta-card{background:#fff;color:#2b2b2b;border:1px solid #e1b9d6;border-radius:26px;padding:clamp(22px,2.5vw,36px);box-shadow:0 20px 60px #873c7310;min-width:0}.consulta-label{display:inline-flex;background:#f8edf5;color:#873c73;border-radius:30px;padding:7px 13px;font-size:13px;font-weight:800}.consulta-card h2{font-size:clamp(26px,2.6vw,36px);line-height:1.15;letter-spacing:-.025em;margin:18px 0}.consulta-card p{font-size:15px;line-height:1.5;margin:14px 0;color:#4f4f4f}.consulta-points{padding-left:20px;font-size:14px;line-height:1.5;display:grid;gap:5px;margin:12px 0}.consulta-card .consulta-seals{font-size:13px;border-block:1px solid #f0deeb;padding:13px 0;color:#873c73;font-weight:800}.consulta-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.consulta-fields label{display:grid;gap:6px;font-size:14px;font-weight:800;min-width:0}.consulta-fields input,.consulta-fields select{height:46px;padding:9px 11px;width:100%;min-width:0;border:1px solid #d5c4d0;border-radius:10px;font:inherit;font-size:16px;background:#fff;color:#2b2b2b}.consulta-privacy{display:flex;align-items:start;gap:9px;font-size:13px;line-height:1.5;margin:16px 0 10px}.consulta-privacy input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:#873c73}.consulta-card a:not(.button){color:#873c73;text-decoration:underline;text-underline-offset:3px}.consulta-card .data-note{font-size:13px!important;line-height:1.45!important;margin:10px 0 18px!important;padding:0!important;border:0!important}.consulta-card form>.button{width:100%;font-size:16px;min-height:50px;padding:13px 15px}.consulta-person{display:flex;align-items:center;gap:12px;border-top:1px solid #efdfeb;margin-top:20px;padding-top:16px}.consulta-person>span{display:grid;place-items:center;background:#f8edf5;color:#873c73;width:42px;height:42px;border-radius:50%;font-weight:800;flex:none}.consulta-person p{margin:0;font-size:13px}.consulta-card .consulta-schedule{font-size:13px;margin-bottom:0}.consulta-feedback{background:#f8edf5;padding:16px;border-radius:12px;margin-top:14px}.consulta-feedback[hidden]{display:none}.consulta-feedback strong,.consulta-feedback small{display:block;font-size:14px;line-height:1.5}.consulta-feedback .button{margin:14px 0}.consulta-feedback small{font-size:13px}.consulta-mobile-bar{display:none}.lp-dark .consulta-copy,.elite-hero .consulta-copy{color:#fff}.lp-dark .consulta-copy .lead,.elite-hero .consulta-copy .lead{color:#e8dce5}.brand-carousel{padding:42px 0!important;background:#fff}.brand-carousel h2{font-size:23px;letter-spacing:-.02em;margin:0 0 7px;text-align:center}.brand-carousel>.container>p{font-size:15px;color:#666;text-align:center;margin:0 0 28px}.brand-viewport{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}.brand-track{display:flex;width:max-content;animation:client-marquee 65s linear infinite}.brand-track ul{display:flex;align-items:center;gap:48px;list-style:none;margin:0;padding:12px 24px;flex:none}.brand-track li{width:150px;height:58px;display:flex;align-items:center;justify-content:center}.brand-track img{width:auto;height:auto;max-width:150px;max-height:42px;filter:grayscale(1);opacity:.7;transition:filter .25s,opacity .25s;object-fit:contain}.brand-track img:hover{filter:grayscale(0);opacity:1}.brand-viewport:hover .brand-track{animation-play-state:paused}@keyframes client-marquee{to{transform:translateX(-50%)}}.consulta-cards,.consulta-method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.consulta-cards article,.consulta-method article{padding:28px;border:1px solid #e1b9d6;background:#fff;border-radius:18px}.consulta-cards h3,.consulta-method h3{font-size:22px;line-height:1.25;margin:0 0 15px}.consulta-cards p,.consulta-method p{font-size:16px;line-height:1.65;margin:0}.consulta-statement{font-size:clamp(21px,2.5vw,30px);line-height:1.4;font-weight:800;text-align:center;margin:36px auto 0;max-width:850px}.consulta-channels{display:grid;grid-template-columns:1fr 1fr;gap:26px}.consulta-channels>article{background:#fff;border:1px solid #e1b9d6;border-radius:22px;padding:30px;min-width:0}.consulta-channels h3{font-size:25px}.consulta-channels li,.consulta-channels p{font-size:16px;line-height:1.6}.consulta-ad{border:1px solid #e2e2e2;border-radius:12px;padding:24px;background:#fafafa;min-height:230px;display:flex;flex-direction:column;gap:12px}.consulta-ad span,.consulta-ad small{font-size:14px}.search-ad>span{padding:12px;border:1px solid #ddd;border-radius:30px;background:white}.search-ad>strong{font-size:22px;color:#355aaf}.social-ad>div{background:#873c73;color:#fff;font-size:30px;line-height:1.2;padding:25px;border-radius:8px;font-weight:800}.consulta-method{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:32px}.consulta-method article{padding:22px}.consulta-method p+p{margin-top:18px}.consulta-comparison{width:100%;border-collapse:collapse;background:#fff;min-width:0}.consulta-comparison td,.consulta-comparison th{padding:20px;border-bottom:1px solid #e1b9d6;text-align:left;font-size:16px;line-height:1.5;width:50%;vertical-align:top}.consulta-comparison th{background:#f8edf5;color:#873c73}.consulta-timeline{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;gap:24px;margin:40px 0}.consulta-timeline li{border-top:3px solid #b45099;padding-top:20px}.consulta-timeline span{font-size:15px;font-weight:800;color:#873c73}.consulta-timeline h3{font-size:23px}.consulta-timeline p{font-size:16px;line-height:1.6}.consulta-price-notes{display:grid;gap:12px;margin-top:28px}.consulta-price-notes p{font-size:15px;line-height:1.6;margin:0}.consulta-recommended{display:inline-block;padding:6px 12px;background:#873c73;color:#fff;border-radius:30px;font-size:13px;font-weight:800;margin-bottom:15px}.consulta-plan-note{font-size:13px!important;color:#873c73!important;font-weight:800}.consulta-activities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.consulta-activities a{display:flex;flex-direction:column;gap:16px;border:1px solid #e1b9d6;border-radius:18px;padding:25px;color:#2b2b2b;text-decoration:none;transition:background .2s,transform .2s}.consulta-activities a:hover{background:#f8edf5;transform:translateY(-3px)}.consulta-activities h3{margin:0;font-size:23px}.consulta-activities span{font-size:15px;line-height:1.5}.consulta-activities small{font-size:13px;color:#873c73}.social-plans{grid-template-columns:repeat(3,minmax(0,1fr))!important}.custom-plan-price{font-size:25px;font-weight:800;color:#873c73;line-height:1.3}.redes-content-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.redes-content-layout .social-composition{width:100%;min-width:0}.redes-content-layout .social-composition strong{font-size:30px}
@media(max-width:1050px){.consulta-grid{gap:28px}.consulta-fields{grid-template-columns:1fr}.consulta-method,.consulta-activities{grid-template-columns:repeat(2,minmax(0,1fr))}.consulta-copy .lead{font-size:18px}.social-plans{grid-template-columns:1fr!important}}
@media(max-width:760px){.consulta-hero{padding:26px 0 34px!important}.consulta-grid{grid-template-columns:1fr}.consulta-copy{padding-top:0}.consulta-title h1{font-size:clamp(39px,10vw,56px)}.consulta-fields{grid-template-columns:1fr 1fr}.consulta-card{padding:22px;border-radius:20px;scroll-margin-top:25px}.consulta-trust{font-size:13px}.consulta-benefits li{font-size:15px}.consulta-cards,.consulta-channels,.consulta-method,.consulta-timeline,.consulta-activities,.redes-content-layout{grid-template-columns:1fr}.consulta-mobile-bar{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:20px;right:20px;display:block;background:#873c73;color:#fff;border-radius:40px;text-align:center;text-decoration:none;padding:16px;font-weight:800;font-size:16px;z-index:90;box-shadow:0 4px 20px #2b2b2b25}[data-consulta-page] .whatsapp-float,[data-consulta-page] .floating-whatsapp{bottom:85px!important}[data-consulta-page] footer{padding-bottom:90px}.brand-carousel h2{font-size:21px}.brand-track ul{gap:26px}.brand-track li{width:130px}.brand-track img{max-width:130px}.consulta-channels>article{padding:20px}.consulta-comparison td,.consulta-comparison th{padding:12px;font-size:14px}.consulta-trust>.lp-partner{font-size:14px}}
@media(max-width:380px){.consulta-fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.brand-track{animation:none;width:100%}.brand-track ul{flex-wrap:wrap;justify-content:center;gap:20px;width:100%;padding-inline:0}.brand-track ul[aria-hidden]{display:none}.brand-viewport{mask-image:none}.consulta-activities a{transition:none}}
.consulta-card form>.button.button--primary{background:#b45099;color:#fff}.consulta-card form>.button.button--primary:hover{background:#873c73;color:#fff}.consulta-card h2{color:#2b2b2b!important}.consulta-card .data-note a{color:#873c73!important}
.lp-plans>article,.level-grid>article{position:relative;padding-top:60px}.lp-plans .consulta-recommended,.level-grid .consulta-recommended{position:absolute;top:17px;left:22px;margin:0}.lp-plans .consulta-plan-note{margin-top:12px;margin-bottom:24px}.consulta-cards article:hover{background:#fcf7fa}

/* Insignia Google Partner con la G de Google y reseñas con estrellas */
.lp-partner img { width: 22px; height: 22px; flex: none; }
.trust-reviews { display: inline-grid; grid-template-columns: auto; gap: 1px; color: inherit; text-decoration: none; line-height: 1.25; }
.trust-reviews .trust-stars { color: #fbbc04; font-size: 19px; letter-spacing: 2px; }
.trust-reviews strong { font-size: 16px; }
.trust-reviews span:last-child { font-size: 14px; opacity: .75; }
.trust-reviews:hover strong { text-decoration: underline; }
a.lp-partner { text-decoration: none; }
a.lp-partner:hover { border-color: var(--accent, #b44f9b); }
/* Sello de Google: sin estilos de enlace heredados; estrellas amarillas siempre; texto blanco en fondo oscuro */
a.trust-reviews, a.trust-reviews:hover, a.trust-reviews:visited { display: inline-grid !important; text-decoration: none !important; color: inherit !important; }
a.trust-reviews .trust-stars { color: #fbbc04 !important; }
a.trust-reviews strong, a.trust-reviews span:last-child { color: inherit !important; text-decoration: none !important; }
a.lp-partner, a.lp-partner:hover, a.lp-partner:visited { color: #2b2b2b !important; text-decoration: none !important; background: #fff; }
.lp-dark a.trust-reviews, .elite-hero a.trust-reviews, .lp-dark .consulta-trust, .elite-hero .consulta-trust { color: #fff !important; }
.lp-dark a.trust-reviews span:last-child, .elite-hero a.trust-reviews span:last-child { color: #e8dce5 !important; opacity: 1; }
/* CTA de cada nivel: lleva al formulario de consulta con el plan elegido */
article:has(> .plan-cta) { display: flex; flex-direction: column; }
article > .plan-cta { margin-top: auto; align-self: stretch; text-align: center; justify-content: center; }
article > ul + .plan-cta, article > p + .plan-cta { margin-top: auto; padding-top: 12px; }
.consulta-plan-elegido { background: #f8edf5; color: #873c73; font-weight: 800; font-size: 14px; border-radius: 10px; padding: 10px 12px; margin: 0 0 14px; }

/* Anuncios de ejemplo realistas: resultado de Google y publicación de Instagram */
.ad-mock { font-family: Arial, Helvetica, sans-serif; color: #202124; background: #fff; border-radius: 18px; box-shadow: 0 18px 50px #2b2b2b1f, 0 2px 6px #2b2b2b14; overflow: hidden; text-align: left; position: relative; margin-bottom: 26px; }
.ad-mock svg { width: 18px; height: 18px; flex: none; }
.ad-tag { position: absolute; top: -12px; right: 14px; background: #b45099; color: #fff; font: 800 11px/1 var(--font, sans-serif); letter-spacing: .08em; text-transform: uppercase; padding: 7px 11px; border-radius: 30px; box-shadow: 0 4px 12px #b4509940; }
.ad-serp { padding: 18px 20px 20px; }
.ad-serp-top { display: flex; align-items: center; gap: 14px; }
.ad-glogo { font: 500 24px/1 "Product Sans", Arial, sans-serif; letter-spacing: -.5px; }
.ad-glogo b { font-weight: 500; }
.ad-serp-box { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; border: 1px solid #dfe1e5; border-radius: 24px; padding: 10px 16px; font-size: 15px; box-shadow: 0 1px 6px #20212924; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ad-serp-box svg { color: #4285f4; }
.ad-serp-tabs { display: flex; gap: 18px; font-size: 13px; color: #5f6368; border-bottom: 1px solid #ebebeb; margin: 14px -20px 16px; padding: 0 20px 9px 20px; }
.ad-serp-tabs .on { color: #1a73e8; border-bottom: 3px solid #1a73e8; padding-bottom: 7px; margin-bottom: -10px; }
.ad-serp-ad { position: relative; border: 2px solid #b45099; border-radius: 14px; padding: 14px 14px 12px; }
.ad-sponsored { font-size: 13px; font-weight: 700; margin: 0 0 8px; color: #202124; }
.ad-site { display: flex; align-items: center; gap: 10px; }
.ad-site b { display: block; font-size: 14px; font-weight: 400; color: #202124; }
.ad-site small { display: block; font-size: 12px; color: #4d5156; }
.ad-fav { width: 28px; height: 28px; border-radius: 50%; background: #f1f3f4; border: 1px solid #dadce0; display: grid; place-items: center; font-weight: 700; color: #873c73; font-size: 13px; }
.ad-dots { margin-left: auto; color: #70757a; display: flex; }
.ad-title { color: #1a0dab; font-size: 19px; line-height: 1.3; margin: 8px 0 4px; }
.ad-desc { color: #4d5156; font-size: 14px; line-height: 1.55; margin: 0 0 10px; }
.ad-links { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: #1a0dab; margin-bottom: 12px; }
.ad-call { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #dadce0; border-radius: 20px; padding: 7px 14px; font-size: 14px; color: #1a73e8; }
.ad-call svg { width: 16px; height: 16px; }
.ad-org { padding: 18px 2px 0; display: grid; gap: 9px; }
.ad-org i { display: block; height: 10px; border-radius: 6px; background: #eceef1; }
.ad-ig { max-width: 380px; margin-left: auto; margin-right: auto; border: 1px solid #dbdbdb; }
.ad-ig-h { display: flex; align-items: center; gap: 10px; padding: 11px 12px; }
.ad-ig-h b { display: block; font-size: 14px; }
.ad-ig-h small { display: block; font-size: 12px; color: #737373; }
.ad-ig-av { width: 36px; height: 36px; border-radius: 50%; padding: 2px; background: conic-gradient(#feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75); display: grid; }
.ad-ig-av i { font-style: normal; display: grid; place-items: center; background: #873c73; color: #fff; border: 2px solid #fff; border-radius: 50%; font-weight: 700; font-size: 14px; }
.ad-ig-img { position: relative; aspect-ratio: 1 / 1; background: radial-gradient(120% 90% at 85% 100%, #e7a3cf 0%, transparent 55%), linear-gradient(160deg, #3b2337 0%, #6d2f60 45%, #b45099 100%); display: grid; place-items: center; text-align: center; padding: 24px; }
.ad-ig-img .ad-tag { top: 12px; }
.ad-ig-img strong { display: block; color: #fff; font: 800 clamp(24px, 3vw, 30px)/1.15 var(--font-display, sans-serif); letter-spacing: -.02em; }
.ad-ig-img div span { display: block; color: #f6e6f1; font-size: 15px; margin-top: 12px; }
.ad-ig-cta { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; background: #0095f6; color: #fff; font-size: 14px; font-weight: 700; }
.ad-ig-actions { display: flex; gap: 14px; padding: 12px 14px 4px; color: #262626; }
.ad-ig-actions svg { width: 24px; height: 24px; }
.ad-save { margin-left: auto; display: flex; }
.ad-ig-likes, .ad-ig-cap { font-size: 14px; margin: 4px 14px; line-height: 1.4; }
.ad-ig-cap { margin-bottom: 14px; }
@media (max-width: 760px) { .ad-title { font-size: 17px; } .ad-serp-tabs span:nth-child(4) { display: none; } }

/* Blog: entradas reales (generar-blog.py) */
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0 0 22px; padding: 0; font-size: 14px; color: var(--muted); }
.breadcrumb li { min-width: 0; }
.breadcrumb li + li::before { content: '›'; margin: 0 9px; color: var(--brand-dark); }
.breadcrumb a { display: inline-flex; min-height: 44px; align-items: center; }
.breadcrumb li:last-child { flex: 1 1 100%; padding: 4px 0 10px; line-height: 1.5; }
.breadcrumb li:last-child::before { display: none; }
.breadcrumb li:nth-last-child(2)::after { content: '›'; margin-left: 9px; color: var(--brand-dark); }
.breadcrumb span { overflow-wrap: anywhere; }
.article-hero .reading-heading h1 { font-size: clamp(34px, 4.6vw, 58px); letter-spacing: -1.6px; }
.article-cover-image { max-width: 1000px; margin: 30px auto 0; }
.article-cover-image img { width: 100%; border-radius: 22px; border: 1px solid var(--border); }
.article-content { padding-top: 40px; }
.article-body > p:first-child { font-size: 19px; }
.article-body h3 { font-size: 22px; margin-top: 30px; }
.article-body ul, .article-body ol { padding-left: 22px; margin: 0 0 24px; }
.article-body li { margin-bottom: 10px; line-height: 1.7; }
.article-body li::marker { color: var(--brand-dark); }
.article-body blockquote { margin: 0 0 26px; padding: 20px 22px; background: var(--soft); border-left: 3px solid var(--brand); border-radius: 0 16px 16px 0; }
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body a { overflow-wrap: anywhere; }
.article-figure { margin: 6px 0 28px; }
.article-figure img { border: 1px solid var(--border); border-radius: 14px; }
.table-wrap { max-width: 100%; overflow-x: auto; margin: 0 0 28px; border: 1px solid var(--border); border-radius: 14px; }
.table-wrap:focus-visible { outline-offset: 2px; }
.table-wrap table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; min-width: 520px; }
.table-wrap th, .table-wrap td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); }
.table-wrap th { background: var(--soft); color: var(--brand-dark); font-weight: 700; }
.table-wrap tr:last-child td { border-bottom: 0; }
.article-body .faq-list { margin-top: 10px; }
.article-body .faq-list summary { font-family: var(--font-heading); font-size: 19px; line-height: 1.35; }
.faq-answer { padding: 0 20px 6px 0; color: var(--muted); font-size: 16px; }
.article-sources ul { font-size: 15px; color: var(--muted); }
.article-sources h2 { font-size: 24px; }
.article-service .eyebrow { margin-bottom: 14px; }
.article-service .cta-action { gap: 14px; }
.related-posts { background: var(--soft); }
.blog-card-media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--soft); border-bottom: 1px solid var(--border); }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; }
.blog-card-copy h3 { font-size: 22px; letter-spacing: -.5px; }
.blog-card[hidden] { display: none; }
.blog-filter-status { color: var(--muted); margin-bottom: 18px; }
@media (max-width: 767px) { .article-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .article-hero .reading-heading h1 { font-size: clamp(30px, 8.4vw, 42px); letter-spacing: -1px; }
  .article-cover-image { margin-top: 20px; }
  .article-cover-image img { border-radius: 16px; }
  .article-body > p:first-child { font-size: 18px; }
  .article-body h2 { font-size: 26px; }
}
