.cnlfb-front{--accent:#3975d2;--soft:#eff5ff;--ink:#1d2940;--line:#e1e7f0;font-family:inherit;background:#f7f9fc;padding:34px 14px 55px;color:var(--ink)}
.cnlfb-front.theme-dark{--accent:#171b25;--soft:#f1f2f4}.cnlfb-front.theme-rose{--accent:#dc4d86;--soft:#fff1f7}.cnlfb-front.theme-green{--accent:#20896d;--soft:#eaf9f3}
.cnlfb-container{max-width:790px;margin:0 auto}.cnlfb-publiccard{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 42px rgba(26,45,78,.07);overflow:hidden}
.cnlfb-publictop{padding:37px 42px 28px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#fff 55%,var(--soft))}.cnlfb-mini{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--accent)}
.cnlfb-publictop h1{font-size:29px;line-height:1.3;font-weight:750;margin:8px 0 10px;color:var(--ink)}.cnlfb-publictop p{font-size:14px;color:#66758a;margin:0;line-height:1.7}
.cnlfb-publicform{padding:33px 42px}.cnlfb-publicgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}.cnlfb-w100,.cnlfb-heading,.cnlfb-paragraph,.cnlfb-line{grid-column:1/-1}.cnlfb-w50{grid-column:span 1}
.cnlfb-inputgroup>label{display:block;font-size:13px;font-weight:700;margin-bottom:9px}.cnlfb-required{color:#df3e5b}.cnlfb-inputgroup input:not([type=checkbox]):not([type=radio]),.cnlfb-inputgroup select,.cnlfb-inputgroup textarea{display:block;width:100%;height:auto;min-height:45px;padding:12px 13px;border:1px solid #d9e0ea;border-radius:9px;background:#fff;color:var(--ink);font-size:14px;box-shadow:none;outline:0;box-sizing:border-box}
.cnlfb-inputgroup textarea{resize:vertical;min-height:110px}.cnlfb-inputgroup input:focus,.cnlfb-inputgroup textarea:focus,.cnlfb-inputgroup select:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--soft)!important}.cnlfb-inputgroup small{display:block;color:#738196;margin-top:7px;font-size:12px;line-height:1.5}
.cnlfb-options{display:flex;gap:9px;flex-wrap:wrap}.cnlfb-option{display:inline-flex!important;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-weight:500!important;cursor:pointer}.cnlfb-option input,.cnlfb-privacy input{accent-color:var(--accent);margin:0}
.cnlfb-heading{margin:6px 0 0;font-size:19px;font-weight:700}.cnlfb-paragraph{margin:0;font-size:14px;color:#617087}.cnlfb-line{height:1px;background:var(--line);margin:6px 0}.cnlfb-privacy{display:flex;align-items:flex-start;gap:9px;margin:24px 0 20px;font-size:13px;font-weight:500;color:#536278;line-height:1.6}.cnlfb-privacy input{margin-top:4px;flex:none}
.cnlfb-submit{display:flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:9px;background:var(--accent);color:#fff;font-size:15px;font-weight:700;padding:15px 24px;min-width:205px;cursor:pointer}.cnlfb-submit:hover{filter:brightness(.92);color:#fff}.cnlfb-submit span{font-size:20px}.cnlfb-footertext{margin:12px 0 0;font-size:11px;color:#8794a6}.cnlfb-message{margin:25px 40px;padding:18px 20px;border-radius:10px}.cnlfb-success{background:#edfaf4;color:#147348}.cnlfb-error{background:#fff1f1;color:#a62b36}.cnlfb-message ul{margin:8px 0 0 20px}.cnlfb-message p{margin:10px 0 0}
@media(max-width:600px){.cnlfb-front{padding:14px 7px 28px}.cnlfb-publictop{padding:25px 21px}.cnlfb-publictop h1{font-size:24px}.cnlfb-publicform{padding:23px 21px}.cnlfb-publicgrid{grid-template-columns:1fr;gap:18px}.cnlfb-w50{grid-column:1/-1}.cnlfb-message{margin:20px}.cnlfb-submit{width:100%}}

/* Embedded CMS mode: avoid oversized page padding and theme CSS collisions */
.cnlfb-front.cnlfb-embedded{background:transparent;padding:18px 0 28px;margin:0 auto;width:100%;max-width:100%;}
.cnlfb-front.cnlfb-embedded .cnlfb-container{max-width:790px;margin:0 auto}
.cnlfb-front .cnlfb-publictop h1,.cnlfb-front .cnlfb-publictop h2{font-size:29px;line-height:1.3;font-weight:750;margin:8px 0 10px;color:var(--ink)}
.cnlfb-front.cnlfb-embedded .cnlfb-publictop h2{font-size:26px;}
.cnlfb-front .cnlfb-publicform label{font-family:inherit;}
.cnlfb-front .cnlfb-inputgroup input:not([type=checkbox]):not([type=radio]),.cnlfb-front .cnlfb-inputgroup select,.cnlfb-front .cnlfb-inputgroup textarea{box-sizing:border-box;border:1px solid #d9e0ea!important;border-radius:9px!important;background-color:#fff!important;}
.cnlfb-front .cnlfb-publiccard{max-width:100%}
@media(max-width:600px){.cnlfb-front.cnlfb-embedded{padding:12px 0 20px}.cnlfb-front.cnlfb-embedded .cnlfb-publictop h2{font-size:23px}}

/* Responsive hardening (2.1.4): scoped to CNL forms, never affects other shop elements. */
.cnlfb-front,.cnlfb-front *,.cnlfb-front *::before,.cnlfb-front *::after{box-sizing:border-box}
.cnlfb-front{width:100%;max-width:100%;min-width:0;overflow-wrap:break-word}
.cnlfb-front .cnlfb-container{width:100%;max-width:790px;min-width:0;container-type:inline-size}
.cnlfb-front .cnlfb-publiccard,.cnlfb-front .cnlfb-publictop,.cnlfb-front .cnlfb-publicform,.cnlfb-front .cnlfb-publicgrid,.cnlfb-front .cnlfb-inputgroup{min-width:0;max-width:100%}
.cnlfb-front .cnlfb-publicgrid>*{min-width:0;max-width:100%}
.cnlfb-front .cnlfb-publictop h1,.cnlfb-front .cnlfb-publictop h2,.cnlfb-front .cnlfb-publictop p,.cnlfb-front .cnlfb-inputgroup>label,.cnlfb-front .cnlfb-inputgroup small,.cnlfb-front .cnlfb-paragraph,.cnlfb-front .cnlfb-heading{overflow-wrap:anywhere}
.cnlfb-front .cnlfb-inputgroup input:not([type=checkbox]):not([type=radio]),.cnlfb-front .cnlfb-inputgroup select,.cnlfb-front .cnlfb-inputgroup textarea{width:100%;max-width:100%;min-width:0}
.cnlfb-front .cnlfb-inputgroup input[type=file]{display:block;width:100%;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5;font-size:13px}
.cnlfb-front .cnlfb-inputgroup input[type=file]::file-selector-button{max-width:58%;margin-right:10px;padding:9px 10px;border:1px solid #d9e0ea;border-radius:7px;background:#f7f9fc;color:var(--ink);cursor:pointer}
.cnlfb-front .cnlfb-options{min-width:0;max-width:100%}
.cnlfb-front .cnlfb-option{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.cnlfb-front .cnlfb-option input{flex:0 0 auto}
.cnlfb-front .cnlfb-privacy{min-width:0;max-width:100%;overflow-wrap:anywhere}
.cnlfb-front .cnlfb-submit{max-width:100%;min-width:0;white-space:normal;text-align:center;overflow-wrap:anywhere}
.cnlfb-front .cnlfb-message{max-width:100%;overflow-wrap:anywhere}
/* Narrow mobile or tablet: make fields full width and reduce the card's gutters. */
@media (max-width:860px){
  .cnlfb-front{padding:20px 10px 35px}
  .cnlfb-front.cnlfb-embedded{padding:12px 0 22px}
  .cnlfb-front .cnlfb-publictop{padding:28px 24px 22px}
  .cnlfb-front .cnlfb-publicform{padding:26px 24px}
  .cnlfb-front .cnlfb-publicgrid{grid-template-columns:minmax(0,1fr);gap:17px}
  .cnlfb-front .cnlfb-w50{grid-column:1/-1}
  .cnlfb-front .cnlfb-message{margin:16px 24px}
}
@media (max-width:480px){
  .cnlfb-front{padding:10px 5px 22px}
  .cnlfb-front.cnlfb-embedded{padding:8px 0 15px}
  .cnlfb-front .cnlfb-publiccard{border-radius:12px}
  .cnlfb-front .cnlfb-publictop{padding:20px 16px 18px}
  .cnlfb-front .cnlfb-publictop h1,.cnlfb-front .cnlfb-publictop h2,.cnlfb-front.cnlfb-embedded .cnlfb-publictop h2{font-size:22px;line-height:1.3}
  .cnlfb-front .cnlfb-publicform{padding:20px 16px}
  .cnlfb-front .cnlfb-publicgrid{gap:16px}
  .cnlfb-front .cnlfb-inputgroup input:not([type=checkbox]):not([type=radio]),.cnlfb-front .cnlfb-inputgroup select,.cnlfb-front .cnlfb-inputgroup textarea{font-size:16px}
  .cnlfb-front .cnlfb-message{margin:14px 16px;padding:14px}
  .cnlfb-front .cnlfb-submit{width:100%;min-height:48px;padding:13px 12px}
  .cnlfb-front .cnlfb-option{width:100%}
  .cnlfb-front .cnlfb-inputgroup input[type=file]{font-size:13px}
}
/* Also adapts CMS forms nested inside narrower desktop columns/sidebar layouts. */
@container (max-width:620px){
  .cnlfb-front .cnlfb-publicgrid{grid-template-columns:minmax(0,1fr);gap:17px}
  .cnlfb-front .cnlfb-w50{grid-column:1/-1}
  .cnlfb-front .cnlfb-publictop{padding:24px 20px 20px}
  .cnlfb-front .cnlfb-publicform{padding:22px 20px}
  .cnlfb-front .cnlfb-message{margin:16px 20px}
}
@container (max-width:420px){
  .cnlfb-front .cnlfb-publictop{padding:19px 15px 16px}
  .cnlfb-front .cnlfb-publicform{padding:18px 15px}
  .cnlfb-front .cnlfb-publictop h1,.cnlfb-front .cnlfb-publictop h2{font-size:21px}
  .cnlfb-front .cnlfb-submit{width:100%;min-height:48px}
}
