/* Facturando — cambios en la cancelación de CFDI 2026 | V09 integrado. */
:root {
  --navy: #143b5c; --blue: #0d568b; --blue-deep: #083e69; --blue-mid: #146caa;
  --orange: #ee832b; --orange-deep: #be5f19; --teal: #147a79;
  --ink: #1b3449; --muted: #62788a; --light: #f4f7f9; --line: #dce6ed;
  --white: #fff; --surface: #fff; --blue-soft: #eaf3fa; --orange-soft: #fff3e9;
  --radius: 16px; --shadow: 0 24px 60px rgba(14,49,78,.11);
  --font: 'Segoe UI', Inter, Roboto, 'Helvetica Neue', Arial, sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior: smooth; scroll-padding-top:110px; }
body { margin:0; min-width:320px; color:var(--ink); background:#fff; font:16px/1.6 var(--font); -webkit-font-smoothing:antialiased; }
a { color:var(--blue); }
a:hover { color:var(--orange-deep); }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible {outline:3px solid #f5a04b;outline-offset:3px;}
button,input {font:inherit;}
button {cursor:pointer;}
svg.icon {width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;}
.container {width:min(1180px,calc(100% - 48px)); margin-inline:auto;}
.skip-link{position:fixed;top:-100px;left:12px;z-index:500;display:block;background:#fff;padding:12px 18px;border-radius:5px;}
.skip-link:focus{top:12px;}
.preview-bar{min-height:32px;padding:6px 16px;text-align:center;background:#e7eff5;border-bottom:1px solid #c9d9e6;color:#2f566e;font-weight:750;font-size:.72rem;letter-spacing:.1em;}
.preview-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--orange);vertical-align:1px;}
.preview-divider{margin:0 8px;color:#7e98ac;}
.site-header{background:#fff;border-bottom:1px solid #edf1f4;position:sticky;top:0;z-index:30;box-shadow:0 2px 15px rgba(20,59,92,.035);}
.header-inner{min-height:83px;display:flex;align-items:center;justify-content:space-between;gap:18px;}
.brand{display:inline-flex;align-items:center;text-decoration:none;min-width:180px;}
.brand-logo{display:none;max-width:208px;width:auto;max-height:55px;object-fit:contain;}
.brand.has-logo .brand-logo{display:block;}
.brand.has-logo .brand-fallback{display:none;}
.brand-fallback{font-size:clamp(1.7rem,2.45vw,2.08rem);letter-spacing:-.055em;color:var(--blue);font-weight:850;line-height:1;}
.brand-period{color:var(--orange);}
.header-actions{display:flex;align-items:center;gap:24px;}
.header-link{font-weight:700;text-decoration:none;font-size:.91rem;display:inline-flex;gap:5px;align-items:center;white-space:nowrap;}
.icon-external{width:16px!important;height:16px!important;}
.button{border:0;display:inline-flex;justify-content:center;align-items:center;gap:11px;border-radius:9px;text-decoration:none;font-weight:770;line-height:1.25;transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s;}
.button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none;transform:none;}
.button:not(:disabled):hover{transform:translateY(-2px);}
.button-primary{background:var(--blue);color:#fff;padding:16px 24px;box-shadow:0 8px 22px rgba(13,86,139,.15);}
.button-primary:not(:disabled):hover{color:#fff;background:#084776;box-shadow:0 12px 26px rgba(13,86,139,.2);}
.button-outline{background:#f1f7fb;color:var(--blue);border:1px solid #bdd5e7;}
.button-outline:hover{color:#084b7c;background:#e6f1f9;}
.button-small{padding:11px 17px;font-size:.91rem;white-space:nowrap;}
.hero{background:linear-gradient(160deg,#eff6fb 0%,#fafcfe 50%,#fff 100%);border-bottom:1px solid #e9eff4;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;width:500px;height:500px;right:-280px;top:-260px;border-radius:50%;background:radial-gradient(circle,rgba(225,236,245,.7),rgba(225,236,245,0) 69%);pointer-events:none;}
.hero-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(370px,.8fr);gap:70px;padding-top:73px;padding-bottom:80px;align-items:start;}
.hero-copy{padding-top:14px;}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.77rem;letter-spacing:.09em;font-weight:850;color:var(--blue);text-transform:uppercase;}
.eyebrow-mark{width:12px;height:12px;border:3px solid var(--orange);border-radius:3px;transform:rotate(-12deg);}
.hero h1{font-size:clamp(2.55rem,4.4vw,4.2rem);line-height:1.09;letter-spacing:-.046em;margin:22px 0 25px;font-weight:810;color:var(--navy);max-width:680px;}
.hero h1 em{color:var(--blue);font-style:normal;}
.hero-lead{font-size:1.12rem;max-width:635px;margin:0;color:#536e81;line-height:1.72;}
.benefit-list{display:grid;gap:13px;margin-top:29px;}
.benefit-list>div{display:flex;gap:12px;align-items:center;color:#38586d;font-size:.99rem;}
.benefit-list strong{color:#224961;}
.check-icon{width:22px!important;height:22px!important;color:var(--teal);padding:4px;border-radius:50%;background:#dff2ef;stroke-width:2.8!important;}
.text-link{font-weight:770;text-underline-offset:4px;text-decoration-thickness:1px;}
.text-link span{display:inline-block;margin-left:3px;}
.sheet-preview-head,.sheet-preview-row{display:grid;grid-template-columns:75px 115px 1fr;gap:12px;align-items:center;padding:10px 17px;}
.form-column{scroll-margin-top:118px;}
.form-card{background:var(--white);border:1px solid #dbe5ec;border-radius:18px;box-shadow:var(--shadow);padding:32px 33px 0;overflow:hidden;}
.form-badge{display:inline-flex;gap:8px;align-items:center;color:#225b7e;font-weight:780;font-size:.77rem;background:#e9f3fb;padding:8px 11px;border-radius:7px;}
.form-badge .icon{width:17px;height:17px;}
.form-card h2{margin:18px 0 7px;font-size:clamp(1.5rem,2.2vw,1.83rem);line-height:1.18;letter-spacing:-.029em;color:var(--navy);}
.form-intro{margin:0 0 22px;color:#64788a;font-size:.91rem;}
.field{margin-top:16px;}
.field>label{display:block;font-size:.84rem;line-height:1.3;font-weight:760;color:#26465b;margin-bottom:7px;}
.field>label>span{color:#b43c3c;}
.field input{display:block;width:100%;min-height:49px;border:1px solid #cbdae5;border-radius:8px;padding:12px 13px;color:var(--ink);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;}
.field input::placeholder{color:#95a5b0;}
.field input:focus{border-color:#4d91c2;box-shadow:0 0 0 3px rgba(13,86,139,.11);}
.field input[aria-invalid="true"]{border-color:#cc6666;background:#fffafa;}
.field-hint{font-size:.72rem;color:#8798a4;margin:6px 0 0;line-height:1.5;}
.field-error{min-height:0;margin:5px 0 0;color:#b43838;font-size:.76rem;line-height:1.4;}
.field-error:empty{display:none;}
.checks{margin:21px 0 0;display:grid;gap:10px;}
.check-label{display:grid;grid-template-columns:18px 1fr;gap:10px;color:#405e74;align-items:start;font-size:.81rem;line-height:1.48;cursor:pointer;}
.check-label input{appearance: auto;accent-color:var(--blue);width:16px;height:16px;margin:2px 0 0;cursor:pointer;}
.check-label a{font-weight:710;}
.check-label.secondary{color:#6b7e8c;}
.check-error{margin:0 0 0 28px;}
.submit-button{width:100%;min-height:55px;margin-top:24px;font-size:.99rem;}
.submit-button svg{stroke-width:2.3;}
.form-status{min-height:0;color:#38596f;font-size:.8rem;text-align:center;margin:12px 0 0;}
.form-status:empty{display:none;}
.form-micro{display:flex;align-items:flex-start;gap:8px;color:#8394a3;font-size:.73rem;line-height:1.5;margin:14px 0 22px;}
.form-micro svg{width:16px;height:16px;margin-top:1px;}
.form-foot{background:#f5f8fa;margin:0 -33px;padding:12px 20px;text-align:center;color:#718698;font-size:.77rem;font-weight:650;border-top:1px solid #e6edf2;}
.section-heading{text-align:center;max-width:720px;margin:0 auto 35px;}
.section-heading h2{margin:10px 0 13px;color:var(--navy);font-size:clamp(1.9rem,3vw,2.45rem);line-height:1.17;letter-spacing:-.035em;}
.section-heading p{color:#637b8d;margin:0;font-size:1.01rem;}
.eyebrow-subtle{color:#a25b23;font-size:.72rem;}
.feature-section{padding:77px 0 81px;}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.feature-card{background:#fff;border:1px solid #dde7ed;border-radius:13px;padding:26px 25px 28px;box-shadow:0 7px 20px rgba(18,50,77,.025);}
.feature-icon{display:grid;place-items:center;width:49px;height:49px;border-radius:12px;margin-bottom:21px;}
.feature-icon .icon{width:26px;height:26px;}
.feature-icon.blue{background:#e5f2fa;color:#165e93;}
.feature-icon.orange{background:#fff0e2;color:#c06a1f;}
.feature-icon.teal{background:#e3f5f1;color:#15766e;}
.feature-card h3{font-size:1.19rem;line-height:1.3;margin:0 0 10px;color:var(--navy);letter-spacing:-.015em;}
.feature-card p{font-size:.91rem;line-height:1.65;color:#687e8f;margin:0;}
.article-section{padding:43px 0;background:#f0f5f8;border-top:1px solid #e7eef3;border-bottom:1px solid #e4ebf0;}
.article-layout{display:grid;grid-template-columns:70px 1fr auto;gap:25px;align-items:center;}
.article-icon{width:65px;height:65px;border-radius:14px;display:grid;place-items:center;background:#e0edf5;color:#1c5c85;}
.article-icon svg{width:32px;height:32px;}
.article-copy h2{margin:6px 0 10px;font-size:1.72rem;line-height:1.22;letter-spacing:-.027em;}
.article-copy p{color:#577287;margin:5px 0;font-size:.92rem;line-height:1.65;}
.button-article{background:#fff;border:1px solid #c7d7e3;color:#0f5b91;padding:13px 19px;white-space:nowrap;font-size:.87rem;}
.button-article:hover{background:#e5f1f8;color:#0f5b91;}
.faq-section{padding:75px 0 84px;}
.faq-wrap{max-width:840px;}
.faq-list{border-top:1px solid var(--line);}
.faq-list details{border-bottom:1px solid var(--line);}
.faq-list summary{display:flex;justify-content:space-between;gap:20px;align-items:center;list-style:none;cursor:pointer;padding:21px 2px;color:#274b63;font-size:1.04rem;font-weight:730;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-plus{font-size:1.6rem;font-weight:300;color:var(--blue);line-height:1;transition:transform .18s;}
.faq-list details[open] .faq-plus{transform:rotate(45deg);}
.faq-list details p{margin:-4px 0 23px;font-size:.94rem;color:#657f90;max-width:720px;}
.end-cta{display:flex;flex-direction:column;align-items:center;margin-top:42px;text-align:center;}
.end-cta p{color:#507187;font-weight:650;margin:0 0 17px;}
.site-footer{background:#0b263c;color:#b9cad8;padding:26px 0;}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:1rem;}
.footer-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.footer-links a{color:#dceaf4;text-decoration:none;}
.footer-links a:hover{text-decoration:underline;color:#fff;}
.social-block{display:flex;align-items:center;gap:13px;}
.social-label{font-size:1rem;font-weight:650;color:#dbe7ef;}
.social-icons{display:flex;align-items:center;gap:9px;}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border-radius:50%;color:#dceaf4;text-decoration:none;border:1px solid rgba(220,234,244,.27);background:rgba(255,255,255,.065);transition:background-color .2s ease,transform .2s ease,color .2s ease;}
.social-icon svg{width:18px;height:18px;fill:currentColor;}
.social-icon:hover{color:#fff;background:#18618e;transform:translateY(-2px);}
.social-icon.youtube:hover{background:#ce2929;}
/* Product cross-promotion: useful but secondary to the free PDF form. */
.products-section{padding:72px 0 68px;background:#fff;}
.products-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px;max-width:1030px;margin:0 auto;}
.product-card{display:flex;gap:17px;padding:26px;border:1px solid #dde7ed;border-radius:14px;background:linear-gradient(150deg,#f9fcfe,#fff);box-shadow:0 6px 20px rgba(18,50,77,.035);}
.product-card-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;background:#e5f2fa;color:#165e93;border-radius:12px;}
.product-card-icon.orange{background:#fff0e2;color:#b96820;}
.product-card-icon .icon{width:26px;height:26px;}
.product-card-body{min-width:0;display:flex;flex-direction:column;align-items:start;}
.product-card h3{margin:0 0 8px;font-size:1.23rem;color:var(--navy);}
.product-card p{margin:0 0 18px;line-height:1.65;color:#667d8f;font-size:.92rem;flex:1;}
.product-card a{font-weight:780;text-decoration:none;text-underline-offset:4px;}
.product-card a:hover{text-decoration:underline;}
.products-note{margin:19px 0 0;text-align:center;color:#8795a1;font-size:.81rem;}
@media (max-width:820px){.products-grid{grid-template-columns:1fr;}.products-section{padding:58px 0;}}
@media (max-width:570px){.product-card{padding:22px;gap:13px;}.product-card-icon{width:42px;height:42px;flex-basis:42px;}.footer-inner{flex-direction:column;justify-content:center;text-align:center;}.footer-links{justify-content:center;gap:10px 18px;}.social-block{justify-content:center;}.products-section{padding:52px 0;}}
/* Modal and states */
.modal[hidden]{display:none;}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px;}
.modal-shade{position:absolute;inset:0;background:rgba(9,34,54,.62);backdrop-filter:blur(3px);}
.modal-window{position:relative;z-index:1;width:min(475px,100%);padding:33px 32px 30px;background:#fff;text-align:center;border-radius:15px;box-shadow:0 28px 90px rgba(5,30,50,.27);}
.modal-close{position:absolute;right:11px;top:9px;border:0;background:#f1f4f7;color:#56758a;width:37px;height:37px;border-radius:50%;font-size:25px;line-height:35px;}
.modal-icon{display:grid;place-items:center;margin:0 auto 13px;background:#e7f3ec;color:#248454;width:59px;height:59px;font-weight:800;font-size:1.8rem;border-radius:50%;}
.modal-window h2{color:var(--navy);font-size:1.48rem;margin:0 0 10px;}
.modal-window p{color:#607689;font-size:.98rem;margin:0;line-height:1.65;}
.modal-action{margin-top:23px;min-width:150px;}
.modal-open{overflow:hidden;}
.state-main{background:linear-gradient(155deg,#f0f7fb,#fff 80%);min-height:calc(100vh - 215px);display:grid;place-items:center;padding:70px 20px 90px;}
.state-card{max-width:595px;width:100%;padding:48px 50px 44px;text-align:center;background:#fff;border:1px solid #dfebf2;border-radius:18px;box-shadow:var(--shadow);}
.state-icon{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 24px;border-radius:50%;background:#e1f2e9;color:#278153;}
.state-icon .icon{width:37px;height:37px;}
.state-card h1{font-size:2.4rem;line-height:1.15;letter-spacing:-.04em;color:var(--navy);margin:10px 0 15px;}
.state-card>p{font-size:1.02rem;color:#657d8e;margin:0 0 24px;}
.state-note{display:grid;gap:5px;text-align:left;border:1px solid #dfeaf1;background:#f5f9fb;padding:18px 21px;margin:21px 0 28px;border-radius:10px;font-size:.9rem;color:#59768a;}
.state-note strong{color:#31536c;}
.state-card .button{width:100%;}
.state-card .state-dev{font-size:.77rem;color:#8799a4;margin:20px 0 0;}
.doc-state-icon{background:#e7f2fa;color:var(--blue);}
.download-file{display:flex;align-items:center;text-align:left;gap:13px;padding:16px;margin:20px 0 25px;border:1px solid #dfeaf1;border-radius:11px;}
.file-symbol{display:grid;place-items:center;width:46px;height:53px;flex-shrink:0;background:#f0e5e0;color:#b04436;font-size:.78rem;font-weight:850;border-radius:6px;}
.download-file strong{display:block;font-size:.92rem;color:#33546b;line-height:1.4;}
.download-file span{display:block;color:#788d9d;font-size:.75rem;}
.download-state .text-link{display:inline-block;margin-top:19px;font-size:.9rem;}
@media (max-width:1060px){
 .hero-layout{gap:38px;grid-template-columns:minmax(0,1fr) minmax(355px,.86fr);}
 .hero h1{font-size:clamp(2.35rem,4.5vw,3.5rem);}
 .article-layout{grid-template-columns:62px 1fr;}
 .button-article{grid-column:2;justify-self:start;margin-top:5px;}
}
@media (max-width:820px){
 .hero-layout{grid-template-columns:1fr;gap:34px;padding-top:47px;padding-bottom:65px;}
 .hero-copy{padding-top:0;}
 .hero h1{max-width:670px;}
 .hero-lead{max-width:700px;}
 .form-column{max-width:640px;width:100%;margin-inline:auto;}
 .feature-grid{grid-template-columns:1fr;gap:14px;}
 .feature-card{padding:23px 23px;}
 .feature-icon{margin-bottom:11px;}
 .feature-section{padding:65px 0;}
 .article-layout{gap:17px;}
 .faq-section{padding:65px 0;}
}
@media (max-width:570px){
 .container{width:min(100% - 32px,1180px);}
 .header-inner{min-height:70px;}
 .brand{min-width:0;}
 .brand-logo{max-width:148px;max-height:46px;}
 .brand-fallback{font-size:1.5rem;}
 .header-actions{gap:10px;}
 .header-link{display:none;}
 .button-small{padding:9px 12px;font-size:.8rem;}
 .preview-bar{font-size:.62rem;min-height:30px;line-height:1.5;}
 .hero-layout{padding-top:37px;padding-bottom:56px;gap:30px;}
 .hero h1{font-size:clamp(2.22rem,10vw,2.8rem);line-height:1.1;margin:16px 0 19px;}
 .hero-lead{font-size:1rem;line-height:1.65;}
 .benefit-list{margin-top:23px;gap:11px;}
 .form-card{padding:26px 22px 0;}
 .form-foot{margin:0 -22px;}
 .feature-section{padding:56px 0 60px;}
 .article-section{padding:40px 0;}
 .article-layout{grid-template-columns:1fr;gap:10px;}
 .article-icon{width:53px;height:53px;}
 .button-article{grid-column:auto;justify-self:start;}
 .article-copy h2{font-size:1.56rem;}
 .section-heading h2{font-size:1.88rem;}
 .faq-section{padding:53px 0 65px;}
 .faq-list summary{font-size:.95rem;padding:19px 0;}
 .footer-inner{justify-content:center;text-align:center;gap:12px;}
 .footer-links{justify-content:center;}
 .state-card{padding:37px 24px;}
 .state-card h1{font-size:2rem;}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}}
/* Integración real: honeypot accesible solo a robots, nunca visible. */
.hp-field {position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}

/* Confirmación en ventana modal: flujo de 49 Bis con apariencia del frontend aprobado */
.modal[hidden], .modal-icon[hidden] {display:none!important;}
.modal {position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;}
.modal-backdrop {position:absolute;inset:0;background:rgba(8,29,47,.54);backdrop-filter:blur(3px);}
.modal-panel {position:relative;width:min(480px,100%);background:#fff;border-radius:19px;padding:36px 34px 30px;text-align:center;box-shadow:0 30px 80px rgba(8,29,47,.30);}
.modal-close {position:absolute;top:12px;right:14px;width:35px;height:35px;display:grid;place-items:center;margin:0;padding:0;border:0;border-radius:50%;background:#f2f5f8;color:#506d80;font-size:1.6rem;line-height:1;}
.modal-icon {width:76px;height:76px;margin:0 auto 18px;}
.modal-icon svg {width:100%;height:100%;fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
.modal-icon-success svg {stroke:#27885a;}.modal-icon-success svg circle {fill:#e9f7f0;stroke:#c8ead8;}
.modal-icon-error svg {stroke:#b44747;}.modal-icon-error svg circle {fill:#fff0f0;stroke:#f1cece;}
.modal-panel h2 {font-size:1.6rem;line-height:1.2;color:var(--navy);margin:0 0 10px;}
.modal-panel p {margin:0;color:#5f7181;font-size:1.02rem;line-height:1.55;}
.modal-action {min-width:150px;margin-top:24px;padding:13px 24px;background:var(--blue);color:white;border:none;border-radius:9px;font-weight:750;}
.modal-open {overflow:hidden;}
@media(max-width:520px){.modal-panel{padding:32px 22px 26px;}}

/* V10: Indicador de procesamiento del formulario, basado en la interacción de 49 Bis. */
.submit-button .spinner{display:none;width:20px;height:20px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:cfdi-submit-spin .8s linear infinite;flex:0 0 20px;}
.submit-button.loading .btn-text,.submit-button.loading .submit-icon{display:none;}
.submit-button.loading .spinner{display:block;}
.submit-button.loading:disabled{opacity:1;cursor:progress;background:#0b6db8;}
@keyframes cfdi-submit-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.submit-button .spinner{animation-duration:1.6s}}
