.ppcs-app,
.ppcs-app * { box-sizing: border-box; }
.ppcs-app {
  --ppcs-accent:#F80000;
  --ppcs-dark:#111111;
  --ppcs-accent-rgb:248,0,0;
  --ppcs-muted:#5f6368;
  --ppcs-border:#e5e7eb;
  --ppcs-bg:#f7f7f8;
  --ppcs-soft:#fff5f5;
  --ppcs-soft-2:#ffe9e9;
  font-family:inherit;
  color:var(--ppcs-dark);
  width:100%;
}
.ppcs-app button,.ppcs-app input,.ppcs-app select,.ppcs-app textarea { font:inherit; }
.ppcs-shell { width:100%; max-width:none; margin:0; padding:28px 24px 48px; }
.ppcs-mode-fullscreen { min-height:100vh; width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); background:linear-gradient(180deg,#ffffff 0%,#f7f7f8 100%); }
.ppcs-homebar { display:flex; justify-content:flex-start; margin-bottom:18px; }
.ppcs-home-link { display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:12px 18px; border-radius:999px; background:#ffffff; color:var(--ppcs-dark); text-decoration:none; font-size:17px; font-weight:800; border:1px solid #d9dce1; box-shadow:0 6px 18px rgba(17,17,17,.06); }
.ppcs-home-link:hover { color:var(--ppcs-dark); transform:translateY(-1px); box-shadow:0 8px 20px rgba(17,17,17,.08); }
.ppcs-home-link span { font-size:24px; line-height:1; }
.ppcs-topbar { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; margin-bottom:26px; }
.ppcs-back { border:0; background:transparent; color:var(--ppcs-dark); font-weight:700; cursor:pointer; padding:8px 0; }
.ppcs-back span { font-size:28px; vertical-align:-2px; margin-right:4px; }
.ppcs-progress { height:8px; background:#b8bcc6; border-radius:999px; overflow:hidden; }
.ppcs-progress-fill { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--ppcs-accent) 0%,var(--ppcs-dark) 100%); border-radius:999px; transition:width .35s ease; }
.ppcs-step-label { font-size:17px; font-weight:700; color:var(--ppcs-muted); }
.ppcs-step { display:none; animation:ppcsFade .28s ease both; }
.ppcs-step.is-active { display:block; }
@keyframes ppcsFade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.ppcs-step-header { margin:0 0 22px; max-width:980px; }
.ppcs-step-header h2,.ppcs-intro-card h2,.ppcs-success-card h2 { margin:0 0 8px; font-size:clamp(28px,4vw,44px); line-height:1.08; letter-spacing:-.03em; }
.ppcs-step-header p:not(.ppcs-eyebrow),.ppcs-lead,.ppcs-success-card>p { margin:0; color:var(--ppcs-muted); font-size:17px; line-height:1.65; }
.ppcs-eyebrow { margin:0 0 10px; text-transform:uppercase; letter-spacing:.12em; font-size:17px; font-weight:800; color:var(--ppcs-accent); }
.ppcs-card { background:#fff; border:1px solid var(--ppcs-border); border-radius:18px; padding:clamp(24px,4vw,54px); box-shadow:0 14px 36px rgba(17,17,17,.08); }
.ppcs-intro-card { text-align:center; width:100%; max-width:none; margin:0; position:relative; overflow:hidden; }
.ppcs-intro-card::before {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at top right, rgba(248,0,0,.08), transparent 28%), radial-gradient(circle at bottom left, rgba(17,17,17,.05), transparent 26%);
  pointer-events:none;
}
.ppcs-intro-card > * { position:relative; z-index:1; }
.ppcs-hero-logo-wrap { display:flex; justify-content:center; align-items:center; min-height:120px; margin:0 auto 18px; }
.ppcs-hero-logo { display:block; width:min(100%, 760px); max-width:760px; max-height:340px; height:auto; object-fit:contain; }
.ppcs-brand-mark { width:84px; height:84px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--ppcs-accent) 0%,var(--ppcs-dark) 100%); color:#fff; font-weight:900; font-size:28px; }
.ppcs-intro-card .ppcs-lead { max-width:760px; margin:0 auto 30px; }
.ppcs-benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:900px; margin:0 auto 30px; text-align:left; }
.ppcs-benefits>div { border:1px solid var(--ppcs-border); border-radius:14px; padding:18px; display:grid; grid-template-columns:auto 1fr; grid-template-areas:"num title" "num desc"; gap:2px 12px; background:#fff; box-shadow:0 8px 20px rgba(17,17,17,.04); }
.ppcs-benefits span { grid-area:num; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--ppcs-accent) 0%,#450000 100%); color:#fff; font-size:17px; font-weight:800; }
.ppcs-benefits strong { grid-area:title; font-size:17px; }
.ppcs-benefits small { grid-area:desc; color:var(--ppcs-muted); line-height:1.45; }
.ppcs-microcopy { margin:14px auto 0; color:var(--ppcs-muted); font-size:17px; max-width:680px; }
.ppcs-card-title { margin:0 0 26px; text-align:center; font-size:20px; }
.ppcs-question { border:0; padding:0; margin:0 0 30px; }
.ppcs-question legend { width:100%; text-align:center; font-weight:800; margin-bottom:14px; font-size:17px; }
.ppcs-options { display:grid; gap:14px; max-width:820px; margin:0 auto; }
.ppcs-options-2 { grid-template-columns:repeat(2,1fr); max-width:600px; }
.ppcs-options-3 { grid-template-columns:repeat(3,1fr); }
.ppcs-options-4 { grid-template-columns:repeat(4,1fr); }
.ppcs-option { position:relative; display:block; cursor:pointer; }
.ppcs-option input { position:absolute; opacity:0; pointer-events:none; }
.ppcs-option span { min-height:52px; border:2px solid var(--ppcs-border); border-radius:10px; padding:12px 16px; display:flex; align-items:center; justify-content:center; text-align:center; background:#fff; box-shadow:0 4px 10px rgba(17,17,17,.06); transition:border-color .18s,box-shadow .18s,transform .18s,background .18s; }
.ppcs-option:hover span { transform:translateY(-1px); border-color:#c9c9cf; }
.ppcs-option input:focus-visible+span { outline:3px solid rgba(var(--ppcs-accent-rgb),.22); outline-offset:2px; }
.ppcs-option input:checked+span,.ppcs-option.is-selected span {
  border-color:var(--ppcs-accent);
  box-shadow:0 0 0 2px rgba(var(--ppcs-accent-rgb),.18), 0 6px 16px rgba(17,17,17,.08);
  background:linear-gradient(180deg,#fff 0%,var(--ppcs-soft) 100%);
}
.ppcs-grid { display:grid; gap:18px 24px; margin-bottom:28px; }
.ppcs-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ppcs-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ppcs-span-2 { grid-column:span 2; }
.ppcs-field { display:flex; flex-direction:column; gap:7px; font-weight:650; }
.ppcs-field>span { font-size:17px; }
.ppcs-field>span small { color:var(--ppcs-muted); font-weight:500; }
.ppcs-field input,.ppcs-field select,.ppcs-field textarea { width:100%; border:1px solid #d6d9de; border-radius:9px; background:#fff; color:var(--ppcs-dark); padding:13px 14px; min-height:48px; outline:none; transition:border-color .18s,box-shadow .18s; }
.ppcs-field textarea { resize:vertical; min-height:110px; }
.ppcs-field input:focus,.ppcs-field select:focus,.ppcs-field textarea:focus { border-color:var(--ppcs-accent); box-shadow:0 0 0 3px rgba(var(--ppcs-accent-rgb),.16); }
.ppcs-file-field input { padding:10px; }
.ppcs-file-help { color:var(--ppcs-muted); font-weight:500; }
.ppcs-file-help.is-error { color:#b42318; }
.ppcs-consents { display:grid; gap:14px; margin-top:8px; }
.ppcs-check { display:flex; gap:11px; align-items:flex-start; color:#4b5563; font-size:17px; line-height:1.55; padding:2px 0; }
.ppcs-check input { margin-top:3px; width:18px; height:18px; accent-color:var(--ppcs-accent); flex:0 0 auto; }
.ppcs-check a { color:var(--ppcs-dark); font-weight:700; text-decoration:underline; }
.ppcs-nav { display:flex; justify-content:flex-end; gap:12px; margin-top:34px; }
.ppcs-btn { border:0; border-radius:999px; min-height:48px; padding:12px 24px; display:inline-flex; align-items:center; justify-content:center; gap:10px; font-weight:800; cursor:pointer; text-decoration:none; transition:transform .18s,box-shadow .18s,background .18s; }
.ppcs-btn:hover { transform:translateY(-1px); }
.ppcs-btn-primary {
  background:linear-gradient(135deg,var(--ppcs-accent) 0%,#a50000 55%,var(--ppcs-dark) 100%);
  color:#fff;
  box-shadow:0 10px 22px rgba(var(--ppcs-accent-rgb),.26);
}
.ppcs-btn-primary:hover { color:#fff; filter:brightness(.98); }
.ppcs-btn-secondary { background:#eef0f2; color:#111; }
.ppcs-submit.is-loading .ppcs-submit-label { opacity:.55; }
.ppcs-spinner { display:none; width:18px; height:18px; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:ppcsSpin .7s linear infinite; }
.ppcs-submit.is-loading .ppcs-spinner { display:block; }
@keyframes ppcsSpin { to { transform:rotate(360deg); } }
.ppcs-invalid .ppcs-option span,.ppcs-field.ppcs-invalid input,.ppcs-field.ppcs-invalid select,.ppcs-field.ppcs-invalid textarea,.ppcs-check.ppcs-invalid { border-color:#d92d20; }
.ppcs-field-error { color:#b42318; font-size:17px; margin-top:6px; text-align:left; }
.ppcs-question>.ppcs-field-error { text-align:center; }
.ppcs-submit-error { margin-top:18px; padding:13px 15px; border-radius:10px; background:#fff1f0; border:1px solid #fecdca; color:#b42318; }
.ppcs-step-success { width:100%; max-width:none; margin:0; }
.ppcs-success-card { text-align:center; padding-top:58px; padding-bottom:58px; position:relative; overflow:hidden; }
.ppcs-success-card::before {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at top center, rgba(248,0,0,.08), transparent 28%);
  pointer-events:none;
}
.ppcs-success-card > * { position:relative; z-index:1; }
.ppcs-success-icon { width:88px; margin:0 auto 18px; }
.ppcs-success-icon svg { width:100%; fill:var(--ppcs-soft-2); stroke:var(--ppcs-dark); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.ppcs-success-card>p { max-width:760px; margin:0 auto 18px; }
.ppcs-success-summary { display:inline-block; margin:8px auto 22px; padding:10px 14px; border-radius:999px; background:#f4f5f6; color:#4b5563; font-size:17px; }
.ppcs-contact-box { display:flex; flex-direction:column; align-items:center; gap:7px; margin:10px auto 28px; }
.ppcs-contact-box span { color:var(--ppcs-muted); }
.ppcs-contact-actions { display:flex; gap:12px; margin-top:10px; }
.ppcs-circle-btn { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; text-decoration:none; font-weight:900; border:1px solid var(--ppcs-accent); color:#111; background:#fff; }
.ppcs-phone { background:#111; color:#fff; border-color:#111; }
[hidden] { display:none !important; }
@media (max-width:820px) {
  .ppcs-shell { padding:18px 12px 34px; }
  .ppcs-homebar { margin-bottom:14px; }
  .ppcs-card { padding:26px 18px; border-radius:14px; }
  .ppcs-benefits,.ppcs-grid-3 { grid-template-columns:1fr; }
  .ppcs-options-3,.ppcs-options-4 { grid-template-columns:repeat(2,1fr); }
  .ppcs-topbar { gap:10px; }
  .ppcs-step-header { padding:0 4px; }
}
@media (max-width:560px) {
  .ppcs-grid-2,.ppcs-options-2,.ppcs-options-3,.ppcs-options-4 { grid-template-columns:1fr; }
  .ppcs-span-2 { grid-column:auto; }
  .ppcs-nav { position:sticky; bottom:0; margin:28px -18px -26px; padding:14px 18px; background:rgba(255,255,255,.96); border-top:1px solid var(--ppcs-border); backdrop-filter:blur(10px); z-index:5; }
  .ppcs-nav .ppcs-btn { flex:1; padding-left:14px; padding-right:14px; }
  .ppcs-benefits>div { padding:15px; }
  .ppcs-step-header h2,.ppcs-intro-card h2,.ppcs-success-card h2 { font-size:30px; }
  .ppcs-topbar { grid-template-columns:auto 1fr; }
  .ppcs-step-label { display:none; }
}


/* v1.0.3 Typography floor: no text below 17px */
.ppcs-step-label,
.ppcs-eyebrow,
.ppcs-benefits span,
.ppcs-benefits strong,
.ppcs-benefits small,
.ppcs-field>span,
.ppcs-field>span small,
.ppcs-file-help,
.ppcs-check,
.ppcs-field-error,
.ppcs-submit-error,
.ppcs-success-summary,
.ppcs-contact-box span {
  font-size:17px;
}

@media (max-width:560px) {
  .ppcs-hero-logo-wrap { min-height:auto; margin-bottom:16px; }
  .ppcs-hero-logo { width:min(100%, 520px); max-height:220px; }
}


/* v1.0.12 Landing limpia para campañas: oculta cabecera, menú y migas de pan cuando el calculador va a pantalla completa */
html.ppcs-fullscreen-page,
body.ppcs-fullscreen-page {
  margin-top:0 !important;
  padding-top:0 !important;
  overflow-x:hidden;
}

body.ppcs-fullscreen-page #wpadminbar + *,
body:has(.ppcs-app.ppcs-mode-fullscreen) #wpadminbar + * {
  margin-top:0 !important;
}

body.ppcs-fullscreen-page #masthead,
body.ppcs-fullscreen-page .site-header,
body.ppcs-fullscreen-page .ast-mobile-header-wrap,
body.ppcs-fullscreen-page .ast-primary-header-bar,
body.ppcs-fullscreen-page .main-header-bar,
body.ppcs-fullscreen-page .elementor-location-header,
body.ppcs-fullscreen-page .hfe-site-header,
body.ppcs-fullscreen-page .site-navigation,
body.ppcs-fullscreen-page .main-navigation,
body.ppcs-fullscreen-page .header-widget-area,
body.ppcs-fullscreen-page .wp-block-template-part:has(header),
body.ppcs-fullscreen-page .wp-site-blocks > header,
body:has(.ppcs-app.ppcs-mode-fullscreen) #masthead,
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-header,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-mobile-header-wrap,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-primary-header-bar,
body:has(.ppcs-app.ppcs-mode-fullscreen) .main-header-bar,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-location-header,
body:has(.ppcs-app.ppcs-mode-fullscreen) .hfe-site-header,
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-navigation,
body:has(.ppcs-app.ppcs-mode-fullscreen) .main-navigation,
body:has(.ppcs-app.ppcs-mode-fullscreen) .header-widget-area,
body:has(.ppcs-app.ppcs-mode-fullscreen) .wp-block-template-part:has(header),
body:has(.ppcs-app.ppcs-mode-fullscreen) .wp-site-blocks > header {
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

body.ppcs-fullscreen-page .rank-math-breadcrumb,
body.ppcs-fullscreen-page .yoast-breadcrumb,
body.ppcs-fullscreen-page .breadcrumbs,
body.ppcs-fullscreen-page .breadcrumb,
body.ppcs-fullscreen-page .breadcrumb-trail,
body.ppcs-fullscreen-page .ast-breadcrumbs,
body.ppcs-fullscreen-page .woocommerce-breadcrumb,
body.ppcs-fullscreen-page .elementor-widget-breadcrumbs,
body.ppcs-fullscreen-page nav[aria-label="breadcrumb"],
body.ppcs-fullscreen-page nav[aria-label="Breadcrumb"],
body.ppcs-fullscreen-page .entry-header,
body.ppcs-fullscreen-page .page-header,
body:has(.ppcs-app.ppcs-mode-fullscreen) .rank-math-breadcrumb,
body:has(.ppcs-app.ppcs-mode-fullscreen) .yoast-breadcrumb,
body:has(.ppcs-app.ppcs-mode-fullscreen) .breadcrumbs,
body:has(.ppcs-app.ppcs-mode-fullscreen) .breadcrumb,
body:has(.ppcs-app.ppcs-mode-fullscreen) .breadcrumb-trail,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-breadcrumbs,
body:has(.ppcs-app.ppcs-mode-fullscreen) .woocommerce-breadcrumb,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-widget-breadcrumbs,
body:has(.ppcs-app.ppcs-mode-fullscreen) nav[aria-label="breadcrumb"],
body:has(.ppcs-app.ppcs-mode-fullscreen) nav[aria-label="Breadcrumb"],
body:has(.ppcs-app.ppcs-mode-fullscreen) .entry-header,
body:has(.ppcs-app.ppcs-mode-fullscreen) .page-header {
  display:none !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

body.ppcs-fullscreen-page .ppcs-clean-landing-wrapper,
body.ppcs-fullscreen-page .site-content,
body.ppcs-fullscreen-page .content-area,
body.ppcs-fullscreen-page .site-main,
body.ppcs-fullscreen-page .entry-content,
body.ppcs-fullscreen-page .elementor-widget-shortcode,
body.ppcs-fullscreen-page .elementor-widget-container:has(.ppcs-app.ppcs-mode-fullscreen),
body.ppcs-fullscreen-page .elementor-section:has(.ppcs-app.ppcs-mode-fullscreen),
body.ppcs-fullscreen-page .elementor-top-section:has(.ppcs-app.ppcs-mode-fullscreen),
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-content,
body:has(.ppcs-app.ppcs-mode-fullscreen) .content-area,
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-main,
body:has(.ppcs-app.ppcs-mode-fullscreen) .entry-content,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-widget-shortcode,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-widget-container:has(.ppcs-app.ppcs-mode-fullscreen),
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-section:has(.ppcs-app.ppcs-mode-fullscreen),
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-top-section:has(.ppcs-app.ppcs-mode-fullscreen) {
  margin-top:0 !important;
  padding-top:0 !important;
}

body.ppcs-fullscreen-page .ppcs-app.ppcs-mode-fullscreen,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ppcs-app.ppcs-mode-fullscreen {
  margin-top:0 !important;
}


/* v1.0.13: limpieza reforzada de cabecera/título en landing limpia */
body.ppcs-fullscreen-page .ppcs-hidden-by-calculator,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ppcs-hidden-by-calculator,
body.ppcs-fullscreen-page .site-title,
body.ppcs-fullscreen-page .site-description,
body.ppcs-fullscreen-page .ast-site-title-wrap,
body.ppcs-fullscreen-page .site-branding:not(.ppcs-branding),
body.ppcs-fullscreen-page .custom-logo-link:not(.ppcs-custom-logo),
body.ppcs-fullscreen-page .ast-above-header-wrap,
body.ppcs-fullscreen-page .ast-below-header-wrap,
body.ppcs-fullscreen-page .ast-header-break-point .main-header-bar,
body.ppcs-fullscreen-page .elementor-widget-theme-site-title,
body.ppcs-fullscreen-page .elementor-widget-site-logo,
body.ppcs-fullscreen-page .elementor-page-title,
body.ppcs-fullscreen-page .page-title,
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-title,
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-description,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-site-title-wrap,
body:has(.ppcs-app.ppcs-mode-fullscreen) .site-branding:not(.ppcs-branding),
body:has(.ppcs-app.ppcs-mode-fullscreen) .custom-logo-link:not(.ppcs-custom-logo),
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-above-header-wrap,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-below-header-wrap,
body:has(.ppcs-app.ppcs-mode-fullscreen) .ast-header-break-point .main-header-bar,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-widget-theme-site-title,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-widget-site-logo,
body:has(.ppcs-app.ppcs-mode-fullscreen) .elementor-page-title,
body:has(.ppcs-app.ppcs-mode-fullscreen) .page-title {
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

body.ppcs-fullscreen-page .ppcs-app.ppcs-mode-fullscreen {
  position:relative;
  z-index:9999;
}

/* v1.0.16 honeypot anti-spam field */
.ppcs-antispam-field {
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
