
/* /rfps_web/static/src/css/home.css */
 :root{--navy:#1B2A4A; --navy-deep:#152238; --amber:#E8A020; --offwhite:#F7F6F3; --white:#FFFFFF; --border:#E2E0DB; --text:#1A1A1A; --text-muted:#6B7280; --font-h:'Fraunces',Georgia,serif; --font-b:'Inter',system-ui,sans-serif; --shadow-sm:0 1px 2px rgba(27,42,74,.06); --shadow-md:0 4px 12px rgba(27,42,74,.10); --shadow-lg:0 8px 24px rgba(27,42,74,.14); --shadow-xl:0 16px 40px rgba(27,42,74,.22);}*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}body{font-family:var(--font-b); font-size:16px; color:var(--text); background:var(--offwhite); line-height:1.65; -webkit-font-smoothing:antialiased;}a{text-decoration:none; color:inherit;}.container{max-width:1120px; margin:0 auto; padding:0 20px;}@media (min-width:900px){.container{padding:0 32px;}}.btn{display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-b); font-weight:600; font-size:15px; line-height:1; padding:14px 24px; border-radius:8px; border:2px solid transparent; cursor:pointer; transition:all .15s ease; white-space:nowrap;}.btn-primary{background:var(--amber); color:var(--navy); border-color:var(--amber);}.btn-primary:hover{background:#f0ad38; transform:translateY(-2px); box-shadow:0 6px 16px rgba(27,42,74,.18);}.btn-secondary{background:var(--navy); color:var(--white); border-color:var(--navy);}.btn-secondary:hover{background:#253a66;}.btn-ghost{background:transparent; color:var(--navy); border-color:rgba(27,42,74,.6);}.btn-ghost:hover{border-color:var(--navy);}.btn-lg{font-size:16px; padding:15px 26px;}.btn-sm{font-size:13px; padding:9px 18px;}@media (min-width:900px){.btn-lg{font-size:17px; padding:16px 32px;}}.section{padding:52px 0;}.section-alt{background:var(--white);}.sec-head{margin-bottom:28px;}.sec-head.centred{text-align:center;}.kicker{font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--navy); margin-bottom:12px;}h2.big{font-family:var(--font-h); font-size:25px; font-weight:700; line-height:1.22; color:var(--navy); margin-bottom:14px;}h2.big em{font-style:italic; color:var(--amber);}.sec-sub{font-size:15px; color:var(--text-muted); line-height:1.7;}@media (min-width:900px){.section{padding:84px 0;}.sec-head{margin-bottom:44px; max-width:640px;}.sec-head.centred{margin-left:auto; margin-right:auto;}h2.big{font-size:37px; margin-bottom:16px;}.sec-sub{font-size:17px;}.kicker{font-size:12px;}}.hero{background:var(--offwhite); padding:44px 0 40px;}.hero-grid{display:grid; grid-template-columns:1fr; gap:32px; align-items:center;}.hero-eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#15803D; margin-bottom:16px;}.hero-eyebrow span.dot{width:8px; height:8px; border-radius:50%; background:#22C55E; display:inline-block;}.hero h1{font-family:var(--font-h); font-size:29px; font-weight:700; line-height:1.18; color:var(--navy); margin-bottom:16px;}.hero h1 em{font-style:italic; color:var(--amber);}.hero-sub{font-size:16px; color:var(--text-muted); line-height:1.7; margin-bottom:18px;}.hero-usps{list-style:none; display:flex; flex-direction:column; gap:9px; margin-bottom:24px;}.hero-usps li{position:relative; padding-left:24px; font-size:14.5px; color:var(--text); line-height:1.5;}.hero-usps li::before{content:'\2713'; position:absolute; left:0; top:0; color:var(--amber); font-weight:700;}.hero-usps li strong{color:var(--navy); font-weight:600;}.hero-actions{display:flex; flex-direction:column; gap:10px; margin-bottom:16px;}.hero-actions .btn{width:100%;}.hero-trust{font-size:13px; color:var(--text-muted);}@media (min-width:640px){.hero-actions{flex-direction:row; align-items:center;}.hero-actions .btn{width:auto;}}@media (min-width:900px){.hero{padding:76px 0 68px;}.hero-grid{grid-template-columns:0.85fr 1.15fr; gap:52px;}.hero h1{font-size:43px;}.hero-sub{font-size:17px;}.hero-usps li{font-size:15px;}}.ui-mock{display:none;}@media (min-width:900px){.ui-mock{display:block; background:var(--white); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-xl); overflow:hidden;}.ui-bar{display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:var(--navy);}.ui-bar-title{font-size:12px; font-weight:600; color:var(--white); letter-spacing:.04em;}.ui-bar-badge{font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--navy); background:var(--amber); padding:3px 9px; border-radius:999px;}.ui-filters{display:flex; gap:6px; padding:12px 16px; border-bottom:1px solid var(--border); flex-wrap:wrap;}.ui-chip{font-size:11px; font-weight:600; color:var(--text-muted); background:var(--offwhite); border:1px solid var(--border); border-radius:999px; padding:4px 10px;}.ui-chip.on{color:var(--navy); background:rgba(232,160,32,.14); border-color:rgba(232,160,32,.5);}.ui-row{display:grid; grid-template-columns:1fr auto; gap:12px; padding:13px 16px; border-bottom:1px solid var(--border); align-items:center;}.ui-row-tag{font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--amber); margin-bottom:3px;}.ui-row-name{font-size:13px; font-weight:600; color:var(--navy); line-height:1.4;}.ui-row-meta{font-size:11px; color:var(--text-muted); margin-top:3px;}.ui-row-budget{font-size:13px; font-weight:700; color:var(--navy); text-align:right; white-space:nowrap;}.ui-row-days{font-size:11px; color:var(--text-muted); text-align:right;}.ui-foot{padding:12px 16px; background:var(--offwhite); display:flex; justify-content:space-between; align-items:center;}.ui-foot-text{font-size:11px; color:var(--text-muted);}.ui-redact{display:inline-block; background:var(--navy); opacity:.2; border-radius:3px; height:11px; width:84px; vertical-align:middle;}}.ticker-band{background:var(--navy); padding:13px 0; overflow:hidden;}.ticker-track{display:flex; width:max-content; animation:tick 42s linear infinite;}.ticker-band:hover .ticker-track{animation-play-state:paused;}.ticker-set{display:flex; align-items:center; flex-shrink:0;}.tick-item{display:inline-flex; align-items:center; gap:8px; padding:0 22px; white-space:nowrap; font-size:13px; color:rgba(255,255,255,.72);}.tick-item strong{color:var(--white); font-weight:600;}.tick-item svg{color:var(--amber); flex-shrink:0;}.tick-sep{width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,.25); flex-shrink:0;}@keyframes tick{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}@media (prefers-reduced-motion:reduce){.ticker-track{animation:none;}}.ex-scroller{display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:4px 4px 18px; scrollbar-width:thin; scrollbar-color:rgba(27,42,74,.32) transparent;}.ex-scroller::-webkit-scrollbar{height:8px;}.ex-scroller::-webkit-scrollbar-track{background:var(--border); border-radius:99px;}.ex-scroller::-webkit-scrollbar-thumb{background:rgba(27,42,74,.32); border-radius:99px;}.ex-card{flex:0 0 82%; scroll-snap-align:start; background:var(--white); border:1px solid var(--border); border-radius:12px; padding:22px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:box-shadow .15s, transform .15s;}.ex-card:hover{box-shadow:var(--shadow-md); transform:translateY(-2px);}.ex-free{display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#15803D; background:rgba(34,197,94,.12); border-radius:999px; padding:4px 10px; margin-bottom:12px; align-self:flex-start;}.ex-tag{font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--amber); margin-bottom:7px;}.ex-card h3{font-family:var(--font-h); font-size:17px; color:var(--navy); line-height:1.35; margin-bottom:10px;}.ex-card p{font-size:13px; color:var(--text-muted); line-height:1.6; flex:1; margin-bottom:14px;}.ex-meta{display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-top:14px; border-top:1px solid var(--border); margin-bottom:14px;}.ex-meta-item{font-size:12px; color:var(--text-muted);}.ex-meta-item strong{display:block; color:var(--navy); font-weight:600; font-size:13px;}.ex-link{font-size:13.5px; font-weight:600; color:var(--navy); text-decoration:underline; text-underline-offset:3px; margin-top:auto;}.ex-link:hover{color:var(--amber);}.ex-hint{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted);}.ex-hint svg{color:var(--amber); flex-shrink:0;}.ex-footer{margin-top:26px;}.ex-footer .btn{width:100%; margin-bottom:10px;}@media (min-width:640px){.ex-card{flex:0 0 320px;}.ex-footer .btn{width:auto; margin:0 8px 10px 0;}}.inv-panel{background:var(--navy); border-radius:14px; padding:28px 20px;}.inv-panel .kicker{color:var(--amber);}.inv-panel h2{font-family:var(--font-h); font-size:23px; color:var(--white); line-height:1.22; margin-bottom:12px;}.inv-panel p.lead{font-size:14.5px; color:rgba(255,255,255,.7); line-height:1.6; margin-bottom:20px;}.inv-rows{display:flex; flex-direction:column;}.inv-row{display:grid; grid-template-columns:1fr auto; grid-template-areas:"name count" "bar bar"; gap:7px 12px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.09);}.inv-row:last-child{border-bottom:none;}.inv-name{grid-area:name; display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--white); line-height:1.3;}.inv-name svg{color:var(--amber); flex-shrink:0;}.inv-count{grid-area:count; font-family:var(--font-h); font-size:20px; font-weight:700; color:var(--amber); line-height:1; white-space:nowrap;}.inv-count small{font-family:var(--font-b); font-size:10.5px; font-weight:600; letter-spacing:.04em; color:rgba(255,255,255,.45); margin-left:5px;}.inv-bar{grid-area:bar; height:5px; border-radius:4px; background:rgba(255,255,255,.1); overflow:hidden;}.inv-fill{height:100%; border-radius:4px; background:linear-gradient(90deg,#E8A020 0%,#f5be5c 100%);}.inv-note{font-size:12.5px; color:rgba(255,255,255,.55); margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.12); line-height:1.6;}.inv-note strong{color:var(--white);}@media (min-width:900px){.inv-panel{border-radius:18px; padding:46px 42px;}.inv-panel h2{font-size:32px;}.inv-panel p.lead{font-size:16px; max-width:620px; margin-bottom:30px;}.inv-row{grid-template-columns:220px 1fr 84px; grid-template-areas:"name bar count"; align-items:center; gap:22px; padding:15px 0;}.inv-name{font-size:15px;}.inv-count{font-size:22px; text-align:right;}.inv-bar{height:7px;}}.cmp-contrast{background:#E7F5EC; border:1px solid #C6E6D2; border-left:5px solid #15803D; border-radius:12px; padding:20px 20px; margin-bottom:18px; display:flex; align-items:center;}.cmp-contrast p{font-size:15px; color:var(--navy); line-height:1.65; margin:0;}.cmp-contrast strong{color:var(--navy);}.cmp-contrast em{font-style:normal; color:#15803D; font-weight:700;}.cmp-cards{display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:16px 4px 18px; scrollbar-width:thin; scrollbar-color:rgba(27,42,74,.32) transparent;}.cmp-cards::-webkit-scrollbar{height:8px;}.cmp-cards::-webkit-scrollbar-track{background:var(--border); border-radius:99px;}.cmp-cards::-webkit-scrollbar-thumb{background:rgba(27,42,74,.32); border-radius:99px;}.cmp-card{flex:0 0 84%; scroll-snap-align:start; background:var(--white); border:1px solid var(--border); border-radius:14px; padding:24px 22px; display:flex; flex-direction:column;}.cmp-card.lead{border:2px solid var(--amber); box-shadow:var(--shadow-lg); position:relative;}.cmp-badge{position:absolute; top:-12px; left:22px; background:var(--amber); color:var(--navy); font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:4px 13px; border-radius:999px;}.cmp-name{font-family:var(--font-h); font-size:19px; color:var(--navy); margin-bottom:4px;}.cmp-cost{font-size:13px; font-weight:600; color:var(--text-muted); margin-bottom:18px;}.cmp-card.lead .cmp-cost{color:var(--amber);}.cmp-list{list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:18px; flex:1;}.cmp-list li{position:relative; padding-left:24px; font-size:14px; line-height:1.55; color:var(--text-muted);}.cmp-list li::before{content:'\2717'; position:absolute; left:0; top:0; color:#DC2626; font-weight:700;}.cmp-card.lead .cmp-list li{color:var(--text);}.cmp-card.lead .cmp-list li::before{content:'\2713'; color:#15803D;}.cmp-time{font-size:12.5px; color:var(--text-muted); padding-top:14px; border-top:1px solid var(--border);}.cmp-time strong{display:block; font-family:var(--font-h); font-size:17px; color:var(--navy); margin-top:3px;}.cmp-cta{margin-top:16px;}.cmp-cta .btn{width:100%;}.cmp-hint{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted);}.cmp-hint svg{color:var(--amber); flex-shrink:0;}.cmp-fine{font-size:12px; color:var(--text-muted); margin-top:14px; line-height:1.6;}@media (min-width:900px){.cmp-contrast{padding:24px 28px; margin-bottom:26px;}.cmp-contrast p{font-size:17px;}.cmp-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; overflow:visible; padding:14px 0 0; align-items:stretch;}.cmp-card{flex:none; padding:32px 28px;}.cmp-name{font-size:21px;}.cmp-badge{left:50%; transform:translateX(-50%);}.cmp-hint{display:none;}}.cmp-card > *:last-child, .plan > *:last-child, .lens > *:last-child, .ex-card > *:last-child, .capture > *:last-child{margin-bottom:0;}.quote-wrap{text-align:center;}.quote-mark{font-family:var(--font-h); font-size:48px; color:var(--amber); line-height:1; margin-bottom:2px;}.quote-text{font-family:var(--font-h); font-size:20px; line-height:1.5; color:var(--navy); margin-bottom:26px;}.quote-by{display:flex; align-items:center; justify-content:center; gap:14px;}.quote-photo{width:56px; height:56px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--navy); border:3px solid var(--amber); display:flex; align-items:center; justify-content:center; font-family:var(--font-h); font-size:21px; color:var(--white);}.quote-photo img{width:100%; height:100%; object-fit:cover; display:block;}.quote-name{font-weight:600; font-size:15px; color:var(--navy); text-align:left;}.quote-role{font-size:13.5px; color:var(--text-muted); text-align:left;}.quote-section{background:var(--navy);}.quote-section .quote-text{color:var(--white);}.quote-section .quote-name{color:var(--white);}.quote-section .quote-role{color:rgba(255,255,255,.7);}@media (min-width:900px){.quote-wrap{max-width:820px; margin:0 auto;}.quote-mark{font-size:64px;}.quote-text{font-size:29px; margin-bottom:34px;}.quote-photo{width:64px; height:64px; font-size:24px;}}.capture{background:var(--navy); border:1px solid var(--border); border-left:5px solid var(--amber); border-radius:12px; padding:26px 22px; box-shadow:var(--shadow-md);}.capture .kicker{color:var(--amber);}.capture h2{font-family:var(--font-h); font-size:22px; color:var(--white); line-height:1.28; margin-bottom:10px;}.capture p.sub{font-size:15px; color:rgba(255,255,255,.78); line-height:1.7; margin-bottom:20px;}.capture-form{display:flex; flex-direction:column; gap:10px;}.capture-input{font-family:var(--font-b); font-size:15px; padding:14px 16px; border:1.5px solid var(--border); border-radius:8px; background:var(--offwhite); color:var(--text); width:100%;}.capture-input:focus{outline:none; border-color:var(--navy); background:var(--white);}.capture-form .btn{width:100%;}.capture-note{font-size:13px; color:rgba(255,255,255,.6); margin-top:12px;}@media (min-width:640px){.capture{padding:40px 38px; max-width:720px; margin:0 auto; border-radius:14px;}.capture h2{font-size:26px;}.capture-form{flex-direction:row; max-width:500px;}.capture-input{flex:1; width:auto;}.capture-form .btn{width:auto;}}.lens-grid{display:grid; grid-template-columns:1fr; gap:14px;}.lens{background:var(--white); border:1px solid var(--border); border-top:4px solid var(--amber); border-radius:12px; padding:24px 22px; box-shadow:var(--shadow-sm);}.lens-icon{width:40px; height:40px; border-radius:10px; background:rgba(232,160,32,.12); color:var(--amber); display:flex; align-items:center; justify-content:center; margin-bottom:16px;}.lens-name{font-family:var(--font-h); font-size:19px; color:var(--navy); margin-bottom:5px;}.lens-role{font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin-bottom:16px;}.lens-checks{list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:18px;}.lens-checks li{position:relative; padding-left:24px; font-size:14.5px; color:var(--text); line-height:1.55;}.lens-checks li::before{content:'\2713'; position:absolute; left:0; top:0; color:var(--amber); font-weight:700;}.lens-cred{font-size:13px; color:var(--text-muted); line-height:1.7; padding-top:16px; border-top:1px solid var(--border);}.lens-cred strong{color:var(--navy); font-weight:600;}.trust-line{margin-top:24px; font-size:14px; color:var(--text-muted); line-height:1.75;}.trust-line strong{color:var(--navy); font-weight:600;}@media (min-width:900px){.lens-grid{grid-template-columns:1fr 1fr; gap:24px;}.lens{padding:34px 32px; border-radius:14px;}.lens-name{font-size:21px;}.trust-line{max-width:820px; margin:36px auto 0; text-align:center; font-size:15px;}}.pricing-grid{display:grid; grid-template-columns:1fr; gap:16px;}.plan{background:var(--white); border:1px solid var(--border); border-radius:14px; padding:28px 24px; display:flex; flex-direction:column;}.plan-lead{border:2px solid var(--amber); box-shadow:var(--shadow-lg); position:relative;}.plan-badge{position:absolute; top:-12px; left:24px; background:var(--amber); color:var(--navy); font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:4px 13px; border-radius:999px;}.plan-label{font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--amber); margin-bottom:8px;}.plan-price{font-family:var(--font-h); font-size:42px; font-weight:700; color:var(--navy); line-height:1; margin-bottom:6px;}.plan-cur{font-size:22px; font-weight:700;}.plan-per{font-size:17px; font-family:var(--font-b); font-weight:500; color:var(--text-muted);}.plan-desc{font-size:14.5px; color:var(--text-muted); margin-bottom:20px;}.plan-feats{list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:22px;}.plan-feats li{position:relative; padding-left:24px; font-size:14.5px; line-height:1.55;}.plan-feats li::before{content:'\2713'; position:absolute; left:0; top:0; color:var(--amber); font-weight:700;}.plan-cta{margin-top:auto;}.plan-cta .btn{width:100%;}.plan-note{font-size:12.5px; color:var(--text-muted); margin-top:11px; text-align:center;}.plan-upgrade{text-align:center; margin-top:22px; font-size:14px; color:var(--text-muted);}@media (min-width:900px){.pricing-grid{grid-template-columns:1fr 1fr; gap:24px; max-width:880px; margin:0 auto; align-items:start;}.plan{padding:40px; border-radius:16px; height:100%;}.plan-badge{left:50%; transform:translateX(-50%); top:-13px;}.plan-price{font-size:50px;}.plan-cur{font-size:25px;}}.faq-item{border-bottom:1px solid var(--border);}.faq-q{width:100%; background:none; border:none; cursor:pointer; display:flex; align-items:flex-start; justify-content:space-between; padding:18px 0; gap:14px; font-family:var(--font-b); font-size:15px; font-weight:600; color:var(--navy); text-align:left; line-height:1.45;}.faq-q svg{flex-shrink:0; color:var(--text-muted); margin-top:2px; transition:transform .15s ease;}.faq-a{padding:0 0 18px; font-size:14.5px; color:var(--text-muted); line-height:1.7;}.faq-a a{color:var(--navy); font-weight:600; text-decoration:underline; text-underline-offset:3px;}@media (min-width:900px){.faq-list{max-width:720px; margin:0 auto;}.faq-q{font-size:16px; padding:21px 0; align-items:center;}.faq-a{font-size:15px; padding-bottom:20px;}}.steps{display:grid; grid-template-columns:1fr; gap:12px;}.step{background:var(--white); border:1px solid var(--border); border-radius:12px; padding:20px 18px; display:flex; gap:16px; align-items:flex-start;}.step-num{width:34px; height:34px; border-radius:9px; background:var(--navy); color:var(--amber); font-size:14px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0;}.step h3{font-family:var(--font-h); font-size:16px; color:var(--navy); margin-bottom:5px;}.step p{font-size:13.5px; color:var(--text-muted); line-height:1.6;}@media (min-width:640px){.steps{grid-template-columns:1fr 1fr; gap:16px;}}@media (min-width:900px){.steps{grid-template-columns:repeat(4,1fr); gap:20px;}.step{flex-direction:column; padding:26px 24px; gap:0;}.step-num{margin-bottom:16px; width:38px; height:38px; font-size:15px;}.step h3{font-size:17px;}.step p{font-size:14px;}}.cta-banner{background:var(--navy); border-radius:14px; padding:34px 22px; text-align:center; margin:52px 0;}.cta-banner h2{font-family:var(--font-h); font-size:24px; color:var(--white); margin-bottom:12px; line-height:1.22;}.cta-banner h2 em{font-style:italic; color:var(--amber);}.cta-banner p{font-size:15px; color:rgba(255,255,255,.7); margin-bottom:22px;}.cta-reasons{display:flex; flex-direction:column; gap:9px; align-items:flex-start; text-align:left; margin-bottom:24px;}.cta-reason{position:relative; padding-left:21px; font-size:13px; color:rgba(255,255,255,.75);}.cta-reason::before{content:'\2713'; position:absolute; left:0; top:0; color:var(--amber); font-weight:700;}.cta-banner .btn{width:100%;}@media (min-width:900px){.cta-banner{padding:60px 48px; border-radius:18px; margin:84px 0;}.cta-banner h2{font-size:36px;}.cta-banner p{font-size:17px; margin:0 auto 28px; max-width:560px;}.cta-reasons{flex-direction:row; justify-content:center; gap:28px; align-items:center; margin-bottom:30px;}.cta-banner .btn{width:auto;}}.ui-row > div:first-child{min-width:0;}.ui-row-name{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}.ex-card h3 a{color:inherit; text-decoration:none;}.ex-card h3 a:hover{text-decoration:underline;}

/* /rfps_web/static/src/css/rfp_cards.css */
 .rfpc-grid{display:grid; grid-template-columns:minmax(0,1fr); gap:20px;}@media (min-width:640px){.rfpc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}@media (min-width:1000px){.rfpc-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}.rfpc-card{display:flex; flex-direction:column; background:var(--white,#fff); border:1px solid var(--border,#E2E0DB); border-radius:12px; padding:24px; box-shadow:var(--shadow-sm,0 1px 2px rgba(27,42,74,.06)); transition:box-shadow .15s, transform .15s;}.rfpc-card:hover{box-shadow:var(--shadow-md,0 4px 12px rgba(27,42,74,.10)); transform:translateY(-2px);}.rfpc-card-locked{background:linear-gradient(180deg,#fff 0%,#FBFAF7 100%);}.rfpc-top{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px;}.rfpc-tag{font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--navy,#1B2A4A); background:rgba(27,42,74,.07); border-radius:999px; padding:4px 10px; white-space:nowrap;}.rfpc-status{font-size:12px; font-weight:600; white-space:nowrap;}.rfpc-status.open{color:#15803D;}.rfpc-status.closed{color:var(--text-muted,#6B7280);}.rfpc-title{font-family:var(--font-h,'Fraunces',Georgia,serif); font-size:18px; font-weight:600; color:var(--navy,#1B2A4A); line-height:1.3; margin:0 0 8px;}.rfpc-issuer, .rfpc-desc{font-size:14px; color:var(--text-muted,#6B7280); margin:0 0 16px;}.rfpc-card .rfpc-issuer, .rfpc-card .rfpc-desc{flex:1;}.rfpc-card-locked .rfpc-desc{flex:1;}.rfpc-meta{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:14px; border-top:1px solid var(--border,#E2E0DB); margin-top:auto;}.rfpc-budget{font-size:15px; font-weight:700; color:#15803D;}.rfpc-muted{color:var(--text-muted,#6B7280); font-weight:500;}.rfpc-note{font-weight:500; color:var(--text-muted,#6B7280);}.rfpc-btn{display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-b,'Inter',system-ui,sans-serif); font-weight:600; font-size:14px; line-height:1; border-radius:8px; padding:10px 16px; border:0; cursor:pointer; text-decoration:none; white-space:normal; text-align:center; line-height:1.25;}.rfpc-btn-primary{background:var(--navy,#1B2A4A); color:#fff;}.rfpc-btn-primary:hover{background:var(--navy-deep,#152238); color:#fff;}.rfpc-btn-amber{background:var(--amber,#E8A020); color:var(--navy,#1B2A4A);}.rfpc-btn-amber:hover{filter:brightness(.95); color:var(--navy,#1B2A4A);}.rfpc-btn-lg{font-size:16px; padding:14px 24px;}.rfpc-rows{list-style:none; margin:0; padding:0; border:1px solid var(--border,#E2E0DB); border-radius:12px; background:var(--white,#fff);}.rfpc-row{border-top:1px solid var(--border,#E2E0DB);}.rfpc-row:first-child{border-top:0;}.rfpc-tr{display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; padding:14px 16px; cursor:pointer;}.rfpc-row-head .rfpc-tr{cursor:default;}.rfpc-tr:focus-visible{outline:2px solid var(--amber,#E8A020); outline-offset:-2px;}.rfpc-row:not(.rfpc-row-head):hover .rfpc-tr, .rfpc-row.is-open .rfpc-tr{background:#FFFBEB;}.rfpc-td:empty{display:none;}.rfpc-td-new{order:1;}.rfpc-td-cat{order:2; min-width:0;}.rfpc-td-chev{order:3; margin-left:auto;}.rfpc-td-title{order:4; flex:1 1 100%; min-width:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}.rfpc-td-budget{order:5;}.rfpc-td-deadline{order:6;}.rfpc-td-cta{order:7; margin-left:auto;}.rfpc-td-budget:not(:empty) + .rfpc-td-deadline::before{content:'· ';}.rfpc-td-cta .rfpc-btn{padding:8px 12px; font-size:13px;}.rfpc-new{display:inline-block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:#15803D; border-radius:999px; padding:3px 8px;}.rfpc-row-title{color:var(--navy,#1B2A4A); font-weight:600; font-size:14px; line-height:1.35;}a.rfpc-row-title:hover{text-decoration:underline;}.rfpc-td-cat .rfpc-tag{display:inline-block; max-width:100%; overflow:hidden; text-overflow:ellipsis; vertical-align:middle;}.rfpc-td-budget{font-weight:700; color:#15803D; font-size:14px;}.rfpc-td-deadline{font-size:13px; color:var(--text-muted,#6B7280);}.rfpc-chev{display:inline-block; width:8px; height:8px; border-right:2px solid var(--text-muted,#6B7280); border-bottom:2px solid var(--text-muted,#6B7280); transform:rotate(45deg); margin:0 4px 3px; transition:transform .15s;}.rfpc-row.is-open .rfpc-chev{transform:rotate(-135deg); margin-bottom:-3px;}.rfpc-more{display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:12px 16px 16px; font-size:14px; color:var(--text,#1A1A1A); background:#FFFBEB; border-top:1px dashed var(--border,#E2E0DB);}.rfpc-more[hidden]{display:none;}.rfpc-more-desc{white-space:pre-line;}.rfpc-more-label{display:block; margin-bottom:2px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted,#6B7280);}.rfpc-row-head{display:none;}.rfpc-card-locked{cursor:pointer;}.rfpc-card-locked:hover{background:#FFFBEB;}@media (min-width:900px){.rfpc-tr, .rfpc-more{display:grid; grid-template-columns:64px minmax(0,1fr) 170px 110px 110px 24px 130px; gap:6px 12px;}.rfpc-tr{padding:14px 18px;}.rfpc-more{padding:12px 18px 16px;}.rfpc-more[hidden]{display:none;}.rfpc-td, .rfpc-td:empty{display:block; order:0; margin:0;}.rfpc-td-title{display:-webkit-box;}.rfpc-td-budget:not(:empty) + .rfpc-td-deadline::before{content:none;}.rfpc-td-cta{justify-self:end;}.rfpc-td-chev{text-align:center;}.rfpc-td-cta .rfpc-btn{padding:10px 16px; font-size:14px;}.rfpc-more-desc{grid-column:2 / 4;}.rfpc-more-industry{grid-column:4 / 6;}.rfpc-row-head{display:block; background:#FAFAF8; border-radius:12px 12px 0 0;}.rfpc-row-head .rfpc-tr{padding-top:10px; padding-bottom:10px; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted,#6B7280);}}.rfpc-hscroll{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:4px 4px 18px; scrollbar-width:thin; scrollbar-color:rgba(27,42,74,.32) transparent;}.rfpc-hscroll::-webkit-scrollbar{height:8px;}.rfpc-hscroll::-webkit-scrollbar-track{background:var(--border,#E2E0DB); border-radius:99px;}.rfpc-hscroll::-webkit-scrollbar-thumb{background:rgba(27,42,74,.32); border-radius:99px;}.rfpc-hscroll > .rfpc-card{flex:0 0 82%; scroll-snap-align:start;}.rfpc-hscroll > .rfpc-card:hover{transform:none;}@media (min-width:640px){.rfpc-hscroll > .rfpc-card{flex:0 0 320px;}}

/* /rfps_web/static/src/css/promo_modal.css */
 .rfpp-modal{position:fixed; inset:0; background:rgba(17,24,39,.55); z-index:1050; display:flex; align-items:center; justify-content:center; padding:20px;}.rfpp-modal[hidden]{display:none;}.rfpp-dialog{background:var(--white); border-radius:16px; max-width:480px; width:100%; padding:36px 32px 28px; position:relative; box-shadow:0 20px 50px rgba(17,24,39,.35); border-top:6px solid var(--amber);}.rfpp-close{position:absolute; top:10px; right:12px; background:none; border:0; font-size:26px; line-height:1; color:var(--text-muted); cursor:pointer; padding:6px;}.rfpp-dialog h2{font-family:var(--font-h); font-size:24px; line-height:1.25; color:var(--navy); margin:0 0 10px;}.rfpp-lead{font-size:15px; color:var(--text-muted); margin:0 0 18px;}.rfpp-form{display:flex; flex-direction:column; gap:10px;}.rfpp-form[hidden]{display:none;}.rfpp-form input{padding:14px 16px; font-size:15px; font-family:var(--font-b); border:1px solid var(--border); border-radius:8px; color:var(--text);}.rfpp-form .rfpc-btn{padding:14px 16px; font-size:15px;}.rfpp-msg{font-size:15px; margin:14px 0 0;}.rfpp-msg.ok{color:#15803D; font-weight:600;}.rfpp-msg.err{color:#DC2626;}.rfpp-modal .rfpp-when-forced{display:none;}.rfpp-modal.rfpp-forced .rfpp-when-forced{display:inline;}.rfpp-modal.rfpp-forced p.rfpp-when-forced{display:block;}.rfpp-modal.rfpp-forced .rfpp-when-soft{display:none;}