/* =================================================================
   A PONTE DAS PARTIDAS — CSS v2.0
   Scope: .apdp-* para no interferir con el tema WordPress
================================================================= */

:root {
  --apdp-verde:        #2c5f2e;
  --apdp-verde-medio:  #4a8c4e;
  --apdp-verde-claro:  #e8f4e9;
  --apdp-marron:       #7a5c3a;
  --apdp-marron-claro: #f5ede0;
  --apdp-crema:        #faf7f2;
  --apdp-crema-oscura: #f0ead8;
  --apdp-dorado:       #c8963c;
  --apdp-dorado-claro: #f4e4c1;
  --apdp-texto:        #1e1e1e;
  --apdp-suave:        #555555;
  --apdp-light:        #888888;
  --apdp-blanco:       #ffffff;
  --apdp-borde:        #ddd5c5;
  --apdp-sombra:       rgba(44,95,46,0.10);
  --apdp-sombra-f:     rgba(30,30,30,0.18);
  --apdp-font-serif:   'Playfair Display', Georgia, serif;
  --apdp-font-sans:    'Nunito', 'Helvetica Neue', sans-serif;
  --apdp-radius:       6px;
  --apdp-max:          1180px;
}

.apdp-page *, .apdp-page *::before, .apdp-page *::after { box-sizing: border-box; }
.apdp-page { font-family: var(--apdp-font-sans); font-size: 16px; line-height: 1.7; color: var(--apdp-texto); overflow-x: hidden; padding: 0; margin: 0; }
.apdp-page img { max-width: 100%; display: block; height: auto; }
.apdp-page a { text-decoration: none; color: inherit; }
.apdp-page ul { list-style: none; margin: 0; padding: 0; }

/* Tipografía */
.apdp-eyebrow { font-family: var(--apdp-font-sans); font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--apdp-dorado); display: block; margin-bottom: 12px; }
.apdp-h2 { font-family: var(--apdp-font-serif); font-size: clamp(26px, 3.8vw, 42px); font-weight: 700; color: var(--apdp-verde); line-height: 1.18; margin: 0 0 18px; }
.apdp-h3 { font-family: var(--apdp-font-serif); font-size: clamp(20px, 2.5vw, 26px); font-weight: 700; color: var(--apdp-verde); line-height: 1.25; margin: 0 0 12px; }
.apdp-lead { font-size: 17px; color: var(--apdp-suave); line-height: 1.85; max-width: 640px; margin: 0 0 24px; }
.apdp-body-text { font-size: 15px; color: var(--apdp-suave); line-height: 1.85; margin: 0 0 16px; }

/* Botones */
.apdp-btn { display: inline-block; padding: 14px 30px; border-radius: 3px; font-family: var(--apdp-font-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; border: 2px solid transparent; transition: all 0.25s ease; text-decoration: none; line-height: 1; }
.apdp-btn-primary { background: var(--apdp-verde); color: var(--apdp-blanco); border-color: var(--apdp-verde); }
.apdp-btn-primary:hover { background: var(--apdp-verde-medio); border-color: var(--apdp-verde-medio); transform: translateY(-2px); box-shadow: 0 8px 24px var(--apdp-sombra); color: var(--apdp-blanco); }
.apdp-btn-dorado { background: var(--apdp-dorado); color: var(--apdp-blanco); border-color: var(--apdp-dorado); }
.apdp-btn-dorado:hover { background: var(--apdp-marron); border-color: var(--apdp-marron); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(122,92,58,.25); color: var(--apdp-blanco); }
.apdp-btn-outline { background: transparent; color: var(--apdp-verde); border-color: var(--apdp-verde); }
.apdp-btn-outline:hover { background: var(--apdp-verde); color: var(--apdp-blanco); transform: translateY(-2px); }
.apdp-btn-outline-white { background: transparent; color: var(--apdp-blanco); border-color: rgba(255,255,255,.7); }
.apdp-btn-outline-white:hover { background: var(--apdp-blanco); color: var(--apdp-verde); border-color: var(--apdp-blanco); }

/* Contenedor y secciones */
.apdp-container { max-width: var(--apdp-max); margin: 0 auto; padding: 0 28px; }
.apdp-section { padding: 80px 28px; }
.apdp-section-crema { background: var(--apdp-crema); }
.apdp-section-crema-d { background: var(--apdp-crema-oscura); }
.apdp-section-verde { background: var(--apdp-verde); }
.apdp-section-blanco { background: var(--apdp-blanco); }
.apdp-section-inner { max-width: var(--apdp-max); margin: 0 auto; }

/* Hero sub-páginas */
.apdp-hero-sub { position: relative; min-height: 440px; display: flex; align-items: flex-end; overflow: hidden; }
.apdp-hero-sub-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.apdp-hero-sub-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,40,20,.82) 0%, rgba(44,95,46,.45) 60%, rgba(30,50,30,.35) 100%); }
.apdp-hero-sub-content { position: relative; padding: 60px 40px 50px; color: var(--apdp-blanco); max-width: var(--apdp-max); margin: 0 auto; width: 100%; }
.apdp-hero-sub-content .apdp-eyebrow { color: var(--apdp-dorado); }
.apdp-hero-sub-content h1 { font-family: var(--apdp-font-serif); font-size: clamp(30px, 5vw, 58px); font-weight: 700; line-height: 1.1; color: var(--apdp-blanco); margin: 0 0 14px; text-shadow: 0 2px 16px rgba(0,0,0,.3); }
.apdp-hero-sub-content .apdp-lead { color: rgba(255,255,255,.85); font-style: italic; font-family: var(--apdp-font-serif); font-size: 18px; }
.apdp-hero-pills { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 28px; }
.apdp-hero-pill { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28); backdrop-filter: blur(6px); border-radius: 30px; padding: 6px 16px; font-size: 12px; color: rgba(255,255,255,.9); font-weight: 500; }

/* Stats */
.apdp-stats { background: var(--apdp-verde); }
.apdp-stats-inner { display: grid; grid-template-columns: repeat(4, 1fr); max-width: var(--apdp-max); margin: 0 auto; }
.apdp-stat { padding: 28px 16px; text-align: center; border-right: 1px solid rgba(255,255,255,.12); color: var(--apdp-blanco); display: flex; flex-direction: column; align-items: center; gap: 4px; }
.apdp-stat:last-child { border-right: none; }
.apdp-stat-num { font-family: var(--apdp-font-serif); font-size: 34px; font-weight: 700; color: var(--apdp-dorado); line-height: 1; }
.apdp-stat-label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.65); font-weight: 600; }

/* Cards */
.apdp-cards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.apdp-cards-grid-2 { grid-template-columns: repeat(2, 1fr); max-width: 640px; margin-left: auto; margin-right: auto; }
.apdp-card { background: var(--apdp-blanco); border-radius: var(--apdp-radius); padding: 34px 26px; box-shadow: 0 4px 24px rgba(0,0,0,.07); transition: all .3s ease; position: relative; overflow: hidden; }
.apdp-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--apdp-verde), var(--apdp-verde-medio)); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.apdp-card:hover { transform: translateY(-6px); box-shadow: 0 14px 44px rgba(0,0,0,.12); }
.apdp-card:hover::before { transform: scaleX(1); }
.apdp-card-icon { width: 54px; height: 54px; background: var(--apdp-verde-claro); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.apdp-card-icon svg { width: 24px; height: 24px; color: var(--apdp-verde); stroke: var(--apdp-verde); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Apartamentos */
.apdp-apt-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.apdp-apt-card { background: var(--apdp-blanco); border-radius: var(--apdp-radius); overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,.08); transition: all .3s ease; display: flex; flex-direction: column; }
.apdp-apt-card:hover { transform: translateY(-5px); box-shadow: 0 16px 50px rgba(0,0,0,.14); }
.apdp-apt-img-wrap { position: relative; overflow: hidden; aspect-ratio: 16/10; background: var(--apdp-crema-oscura); }
.apdp-apt-img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.apdp-apt-card:hover .apdp-apt-img-wrap img { transform: scale(1.05); }
.apdp-apt-tag { position: absolute; top: 14px; left: 14px; background: var(--apdp-verde); color: var(--apdp-blanco); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 5px 12px; border-radius: 2px; }
.apdp-apt-body { padding: 26px; flex: 1; display: flex; flex-direction: column; }
.apdp-apt-features { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 20px; }
.apdp-apt-feature { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--apdp-suave); font-weight: 500; }
.apdp-apt-feature svg { width: 13px; height: 13px; stroke: var(--apdp-verde-medio); fill: none; stroke-width: 2; }
.apdp-apt-price-row { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--apdp-borde); margin-top: auto; }
.apdp-price-from { font-size: 11px; color: var(--apdp-light); margin-bottom: 2px; }
.apdp-price-amount { font-family: var(--apdp-font-serif); font-size: 26px; font-weight: 700; color: var(--apdp-verde); line-height: 1; }
.apdp-price-amount span { font-size: 13px; font-weight: 400; color: var(--apdp-light); }

/* Split */
.apdp-split { display: grid; grid-template-columns: 1fr 1fr; }
.apdp-split-visual { position: relative; min-height: 480px; background-size: cover; background-position: center; display: flex; align-items: flex-end; padding: 40px; }
.apdp-split-visual-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,40,20,.72), rgba(44,95,46,.30)); }
.apdp-split-visual-label { position: relative; font-family: var(--apdp-font-serif); font-size: 30px; font-weight: 700; font-style: italic; color: var(--apdp-blanco); line-height: 1.2; text-shadow: 0 2px 12px rgba(0,0,0,.4); }
.apdp-split-content { background: var(--apdp-verde); padding: 64px 54px; display: flex; flex-direction: column; justify-content: center; color: var(--apdp-blanco); }
.apdp-split-content .apdp-eyebrow { color: var(--apdp-dorado); }
.apdp-split-content .apdp-h2 { color: var(--apdp-blanco); }
.apdp-split-content .apdp-body-text { color: rgba(255,255,255,.8); }
.apdp-check-list { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 28px; }
.apdp-check-item { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: rgba(255,255,255,.85); line-height: 1.5; }
.apdp-check-item svg { width: 16px; height: 16px; stroke: var(--apdp-dorado); fill: none; stroke-width: 2.5; flex-shrink: 0; margin-top: 2px; }

/* Testimonios */
.apdp-testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.apdp-testi-card { background: var(--apdp-blanco); border-radius: var(--apdp-radius); padding: 30px 26px; box-shadow: 0 4px 20px rgba(0,0,0,.06); transition: transform .3s; }
.apdp-testi-card:hover { transform: translateY(-4px); }
.apdp-testi-quote { font-family: var(--apdp-font-serif); font-size: 50px; line-height: 1; color: var(--apdp-verde-claro); margin-bottom: 8px; }
.apdp-testi-text { font-size: 14px; line-height: 1.8; color: var(--apdp-suave); font-style: italic; margin-bottom: 20px; }
.apdp-stars { display: flex; gap: 3px; margin-bottom: 14px; }
.apdp-stars svg { width: 15px; height: 15px; fill: var(--apdp-dorado); }
.apdp-testi-author { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--apdp-borde); }
.apdp-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--apdp-verde-claro); display: flex; align-items: center; justify-content: center; font-family: var(--apdp-font-serif); font-weight: 700; font-size: 15px; color: var(--apdp-verde); flex-shrink: 0; }
.apdp-testi-name { font-weight: 700; font-size: 13px; color: var(--apdp-texto); }
.apdp-testi-source { font-size: 11px; color: var(--apdp-light); }

/* Entorno */
.apdp-entorno-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; width: 100%; }
.apdp-entorno-card { position: relative; border-radius: var(--apdp-radius); overflow: hidden; aspect-ratio: 4/3; cursor: pointer; background: var(--apdp-verde); }
.apdp-entorno-card.wide { grid-column: span 2; aspect-ratio: auto; min-height: 280px; }
.apdp-entorno-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .5s ease; }
.apdp-entorno-card:hover .apdp-entorno-bg { transform: scale(1.06); }
.apdp-entorno-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.72) 0%, transparent 60%); }
.apdp-entorno-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 22px; color: var(--apdp-blanco); }
.apdp-entorno-info h4 { font-family: var(--apdp-font-serif); font-size: 19px; font-weight: 700; margin: 0 0 4px; text-shadow: 0 1px 8px rgba(0,0,0,.4); }
.apdp-entorno-info p { font-size: 12px; color: rgba(255,255,255,.78); margin: 0; }
/* Las tarjetas de entorno SIEMPRE visibles: no dependen de la animación de
   scroll (en móvil no se disparaba y las dejaba invisibles para siempre). */
.apdp-entorno-card.apdp-reveal { opacity: 1 !important; transform: none !important; }

/* Precios */
.apdp-precios-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-bottom: 32px; max-width: 640px; margin-left: auto; margin-right: auto; }
.apdp-precio-card { background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16); border-radius: var(--apdp-radius); padding: 34px 26px; text-align: center; color: var(--apdp-blanco); transition: all .3s; position: relative; }
.apdp-precio-card.featured { background: var(--apdp-blanco); color: var(--apdp-texto); transform: scale(1.04); box-shadow: 0 16px 50px rgba(0,0,0,.22); }
.apdp-precio-card:not(.featured):hover { background: rgba(255,255,255,.15); transform: translateY(-4px); }
.apdp-precio-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--apdp-dorado); color: var(--apdp-blanco); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 16px; border-radius: 12px; white-space: nowrap; }
.apdp-precio-label { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); font-weight: 700; margin-bottom: 14px; }
.apdp-precio-card.featured .apdp-precio-label { color: var(--apdp-light); }
.apdp-precio-from-label { font-size: 11px; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 2px; }
.apdp-precio-card.featured .apdp-precio-from-label { color: var(--apdp-light); }
.apdp-precio-amount { font-family: var(--apdp-font-serif); font-size: 50px; font-weight: 700; line-height: 1; color: var(--apdp-dorado); margin-bottom: 4px; }
.apdp-precio-card.featured .apdp-precio-amount { color: var(--apdp-verde); }
.apdp-precio-unit { font-size: 12px; color: rgba(255,255,255,.5); margin-bottom: 16px; }
.apdp-precio-card.featured .apdp-precio-unit { color: var(--apdp-light); }
.apdp-precio-desc { font-size: 13px; color: rgba(255,255,255,.7); line-height: 1.6; }
.apdp-precio-card.featured .apdp-precio-desc { color: var(--apdp-suave); }

/* Contact strip */
.apdp-contact-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.1); border-radius: var(--apdp-radius); overflow: hidden; margin-top: 32px; }
.apdp-contact-strip-2 { grid-template-columns: repeat(2, 1fr); max-width: 540px; margin-left: auto; margin-right: auto; }
.apdp-contact-item { background: rgba(255,255,255,.06); padding: 22px 20px; display: flex; align-items: center; gap: 14px; color: var(--apdp-blanco); text-decoration: none; transition: background .25s; }
.apdp-contact-item:hover { background: rgba(255,255,255,.13); }
.apdp-contact-item svg { width: 22px; height: 22px; stroke: var(--apdp-dorado); fill: none; stroke-width: 2; flex-shrink: 0; }
.apdp-contact-label { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 3px; }
.apdp-contact-value { font-weight: 700; font-size: 14px; }

/* Distancias */
.apdp-distancias { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 20px 0 28px; }
.apdp-distancia { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: var(--apdp-verde-claro); border-radius: 6px; border-left: 3px solid var(--apdp-verde); }
.apdp-distancia svg { width: 17px; height: 17px; stroke: var(--apdp-verde); fill: none; stroke-width: 2; flex-shrink: 0; }
.apdp-distancia .dest { font-weight: 700; font-size: 13px; color: var(--apdp-verde); }
.apdp-distancia .tiempo { margin-left: auto; font-family: var(--apdp-font-serif); font-weight: 700; font-size: 15px; color: var(--apdp-marron); white-space: nowrap; padding-left: 12px; }
@media (max-width: 560px) { .apdp-distancias { grid-template-columns: 1fr; } }

/* Horario contacto */
.apdp-contacto-horario { display: flex; align-items: center; gap: 8px; justify-content: center; max-width: 640px; margin: 20px auto 0; font-size: 13px; color: var(--apdp-light); text-align: center; line-height: 1.5; }
.apdp-contacto-horario svg { flex-shrink: 0; width: 15px; height: 15px; opacity: .55; }

/* TSM alquiler vehículos */
.apdp-tsm-wrap { display: grid !important; grid-template-columns: 1fr 300px !important; gap: 56px; align-items: start; }
.apdp-tsm-content li svg { width: 16px; height: 16px; flex-shrink: 0; }
.apdp-tsm-badge-inner { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: var(--apdp-radius); padding: 36px 28px; text-align: center; }
.apdp-tsm-logo { max-width: 140px; height: auto; display: block; margin: 0 auto 20px; border-radius: 6px; background: #fff; padding: 10px 16px; }
.apdp-tsm-logo-placeholder { font-size: 22px; font-weight: 700; color: #fff; letter-spacing: .05em; margin-bottom: 20px; line-height: 1.2; }
.apdp-tsm-logo-placeholder span { font-size: 11px; font-weight: 400; opacity: .7; letter-spacing: .12em; text-transform: uppercase; display: block; }
.apdp-tsm-pct { font-family: var(--apdp-font-serif); font-size: 64px; font-weight: 700; line-height: 1; color: var(--apdp-dorado); }
.apdp-tsm-label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); margin: 8px 0 18px; }
.apdp-tsm-sub { font-size: 13px; color: rgba(255,255,255,.7); line-height: 1.6; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.15); }
.apdp-tsm-sub strong { color: #fff; }
@media (max-width: 960px) { .apdp-tsm-wrap { grid-template-columns: 1fr !important; gap: 32px; } }

/* Mapa */
.apdp-mapa { border-radius: var(--apdp-radius); overflow: hidden; box-shadow: 0 8px 40px rgba(0,0,0,.12); border: 1px solid var(--apdp-borde); height: 380px; }
.apdp-mapa iframe { width: 100%; height: 100%; border: none; display: block; }

/* Form slot */
.apdp-form-slot { background: var(--apdp-crema-oscura); border: 2px dashed var(--apdp-borde); border-radius: var(--apdp-radius); padding: 32px 28px; margin-top: 28px; }

/* CTA block */
.apdp-cta-block { text-align: center; padding: 90px 28px; position: relative; overflow: hidden; background-size: cover; background-position: center; }
.apdp-cta-block-overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(44,95,46,.92), rgba(30,70,32,.88)); }
.apdp-cta-block-content { position: relative; max-width: 620px; margin: 0 auto; color: var(--apdp-blanco); }
.apdp-cta-block-content .apdp-eyebrow { color: var(--apdp-dorado); }
.apdp-cta-block-content .apdp-h2 { color: var(--apdp-blanco); font-size: clamp(28px, 4vw, 48px); margin-bottom: 16px; }
.apdp-cta-block-content p { color: rgba(255,255,255,.78); font-size: 16px; line-height: 1.8; margin-bottom: 32px; }
.apdp-cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* Blog grid */
.apdp-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.apdp-post-card { background: var(--apdp-blanco); border-radius: var(--apdp-radius); overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,.07); transition: all .3s ease; display: flex; flex-direction: column; }
.apdp-post-card:hover { transform: translateY(-5px); box-shadow: 0 14px 44px rgba(0,0,0,.13); }
.apdp-post-img { aspect-ratio: 16/9; overflow: hidden; background: var(--apdp-crema-oscura); }
.apdp-post-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.apdp-post-card:hover .apdp-post-img img { transform: scale(1.05); }
.apdp-post-body { padding: 22px 20px; flex: 1; display: flex; flex-direction: column; }
.apdp-post-cat { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--apdp-dorado); margin-bottom: 8px; }
.apdp-post-body h3 { font-family: var(--apdp-font-serif); font-size: 18px; font-weight: 700; color: var(--apdp-verde); line-height: 1.3; margin: 0 0 10px; }
.apdp-post-body p { font-size: 13px; color: var(--apdp-suave); line-height: 1.75; flex: 1; margin: 0 0 16px; }
.apdp-post-meta { font-size: 11px; color: var(--apdp-light); padding-top: 12px; border-top: 1px solid var(--apdp-borde); }

/* Info box */
.apdp-info-boxes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.apdp-info-box { display: flex; align-items: flex-start; gap: 16px; background: var(--apdp-verde-claro); border-radius: var(--apdp-radius); padding: 20px 24px; border-left: 4px solid var(--apdp-verde); margin: 0; }
.apdp-info-box svg { width: 22px; height: 22px; stroke: var(--apdp-verde); fill: none; stroke-width: 2; flex-shrink: 0; margin-top: 2px; }
.apdp-info-box strong { color: var(--apdp-verde); }
.apdp-info-box p { font-size: 14px; color: var(--apdp-suave); margin: 4px 0 0; line-height: 1.65; }
@media (max-width: 560px) {
  .apdp-info-boxes { grid-template-columns: 1fr; }
  /* La caja deja de aplastar el texto: el botón baja a su propia línea
     a todo el ancho y el texto ocupa el espacio completo. */
  .apdp-info-box { flex-wrap: wrap; }
  .apdp-info-box > div { flex: 1 1 0; min-width: 0; }
  .apdp-info-box .apdp-btn { flex: 1 0 100%; margin-top: 12px; text-align: center; }
}

/* Scroll reveal */
.apdp-reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.apdp-reveal.is-visible { opacity: 1; transform: translateY(0); }
.apdp-delay-1 { transition-delay: .1s !important; }
.apdp-delay-2 { transition-delay: .2s !important; }
.apdp-delay-3 { transition-delay: .3s !important; }

/* Responsive */
@media (max-width: 960px) {
  .apdp-cards-grid, .apdp-apt-grid, .apdp-testi-grid, .apdp-entorno-grid, .apdp-precios-grid, .apdp-blog-grid { grid-template-columns: 1fr; max-width: 100%; }
  .apdp-split { grid-template-columns: 1fr; }
  .apdp-split-content { padding: 44px 32px; }
  .apdp-entorno-card.wide { grid-column: span 1; }
  /* En 1 columna las tarjetas pierden el estirado del grid: fijamos altura. */
  .apdp-entorno-card { aspect-ratio: auto; min-height: 220px; }
  .apdp-entorno-card.wide { min-height: 240px; }
  .apdp-precio-card.featured { transform: none; }
  .apdp-contact-strip { grid-template-columns: 1fr; }
  .apdp-stats-inner { grid-template-columns: repeat(2, 1fr); }
  .apdp-stat:nth-child(2) { border-right: none; }
  .apdp-section { padding: 56px 20px; }
  .apdp-hero-sub-content { padding: 50px 24px 40px; }
}
@media (max-width: 600px) {
  .apdp-stats-inner { grid-template-columns: repeat(2, 1fr); }
  .apdp-cta-btns { flex-direction: column; align-items: center; }
  /* Móvil: el padding lateral lo aporta .apdp-section; evitamos el doble margen interno */
  .apdp-section-inner { padding: 0 !important; }
}

/* =================================================================
   BLOG — Single Post
================================================================= */

/* Fondo crema en el wrapper del plugin para evitar gaps blancos entre secciones */
.apdp-page { background: var(--apdp-crema); }

/* Contenedor artículo */
.article-wrap {
  max-width: 760px;
  margin: 0 auto;
  padding: 100px 24px 80px; /* 100px top = 72px navbar fijo + 28px respiro */
  font-family: var(--apdp-font-sans);
  font-size: 17px;
  line-height: 1.75;
  color: var(--apdp-texto);
}

/* Breadcrumb */
.article-wrap .breadcrumb {
  font-size: 13px;
  color: var(--apdp-light);
  margin-bottom: 32px;
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.article-wrap .breadcrumb a { color: var(--apdp-verde); text-decoration: none; }
.article-wrap .breadcrumb span { color: var(--apdp-light); }

/* Header del artículo */
.article-header { margin-bottom: 40px; }
.article-category {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--apdp-dorado);
  margin-bottom: 16px;
}
.article-title {
  font-family: var(--apdp-font-serif);
  font-size: clamp(28px, 5vw, 44px);
  font-weight: 700;
  color: var(--apdp-verde);
  line-height: 1.15;
  margin-bottom: 18px;
}
.article-intro {
  font-size: 19px;
  color: var(--apdp-suave);
  line-height: 1.7;
  border-left: 4px solid var(--apdp-dorado);
  padding-left: 20px;
  font-style: italic;
  margin-bottom: 28px;
}
.article-meta {
  display: flex;
  gap: 20px;
  font-size: 13px;
  color: var(--apdp-light);
  padding-bottom: 28px;
  border-bottom: 1px solid var(--apdp-borde);
  flex-wrap: wrap;
}

/* Cuerpo del artículo */
.article-body h2 {
  font-family: var(--apdp-font-serif);
  font-size: clamp(22px, 3.5vw, 30px);
  font-weight: 700;
  color: var(--apdp-verde);
  margin: 48px 0 16px;
  line-height: 1.2;
}
.article-body h3 {
  font-family: var(--apdp-font-serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--apdp-marron);
  margin: 32px 0 12px;
}
.article-body p {
  margin-bottom: 20px;
  color: var(--apdp-suave);
  font-size: 17px;
  line-height: 1.8;
}
.article-body strong { color: var(--apdp-texto); font-weight: 600; }

/* Razones numeradas */
.razon-num {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin: 36px 0 16px;
}
.razon-badge {
  width: 44px;
  height: 44px;
  background: var(--apdp-verde);
  color: var(--apdp-blanco);
  font-family: var(--apdp-font-serif);
  font-size: 20px;
  font-weight: 700;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}
.razon-content h2 { margin: 0 0 12px; font-size: clamp(19px, 2.8vw, 24px); }

/* Highlight box */
.highlight-box {
  background: var(--apdp-verde-claro);
  border-left: 4px solid var(--apdp-verde);
  border-radius: 0 6px 6px 0;
  padding: 20px 24px;
  margin: 28px 0;
}
.highlight-box p { margin: 0; font-size: 16px; color: var(--apdp-verde); font-weight: 500; }

/* Info card */
.info-card {
  background: var(--apdp-marron-claro);
  border: 1px solid var(--apdp-borde);
  border-radius: 8px;
  padding: 24px 28px;
  margin: 32px 0;
}
.info-card-title {
  font-family: var(--apdp-font-serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--apdp-marron);
  margin-bottom: 12px;
}
.info-card ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.info-card li {
  font-size: 15px;
  color: var(--apdp-suave);
  padding-left: 22px;
  position: relative;
}
.info-card li::before { content: '✓'; position: absolute; left: 0; color: var(--apdp-verde); font-weight: 700; }

/* CTA block del artículo (scoped para no colisionar con .apdp-cta-block) */
.article-wrap .cta-block {
  background: var(--apdp-verde);
  border-radius: 10px;
  padding: 36px 32px;
  text-align: center;
  margin: 48px 0 32px;
}
.article-wrap .cta-block p { color: rgba(255,255,255,0.85); font-size: 16px; margin-bottom: 20px; }
.article-wrap .cta-block a.btn {
  display: inline-block;
  background: var(--apdp-dorado);
  color: var(--apdp-blanco);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 32px;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.2s;
}
.article-wrap .cta-block a.btn:hover { background: var(--apdp-marron); }
.cta-block-title {
  font-family: var(--apdp-font-serif);
  font-size: 24px;
  font-weight: 700;
  color: var(--apdp-blanco);
  margin-bottom: 12px;
}

/* Responsive blog post */
@media (max-width: 600px) {
  .article-wrap { padding: 90px 16px 60px; }
  .razon-num { flex-direction: column; gap: 10px; }
  .razon-badge { width: 36px; height: 36px; font-size: 17px; }
}
