/* cam.css — GENERATED by build_css.py. DO NOT EDIT THIS FILE.
 * Edit a part in /root/cam-scripts/css/ and re-run the script.
 * Parts, in cascade order:
 *   00-mockup-utils.css
 *   00-mockup.css
 *   05-responsive.css
 *   06-grounds.css
 *   10-bridge.css
 *   20-nav.css
 *   30-form.css
 *   40-newbands.css
 *   45-fixes.css
 *   50-elementor.css
 *   60-elementor-map.css
 *   65-elementor-widgets.css
 *   67-fixes-map.css
 */


/* ==================== 00-mockup-utils.css ==================== */
/* the four mockups' own <style> blocks, merged and deduped, verbatim */
body { margin: 0; background: #F9F9F9; }
a { text-decoration: none; }
.cx-nav-link:hover { color: #FFFFFF; }
.cx-btn:hover { filter: brightness(1.06); }
.cx-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15,23,42,0.12); }
.cx-footer-link:hover { color: #FFFFFF; }
.cx-scroll { scrollbar-width: thin; scrollbar-color: #E0742A #E4E8F0; -webkit-overflow-scrolling: touch; }
.cx-scroll::-webkit-scrollbar { height: 6px; }
.cx-scroll::-webkit-scrollbar-track { background: #E4E8F0; border-radius: 999px; }
.cx-scroll::-webkit-scrollbar-thumb { background: #E0742A; border-radius: 999px; }
.cx-step-link:hover { color: #E0742A; }
.cx-chip:hover { background: #EFF2F7; }
.cx-tier:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15,23,42,0.12); }

/* ==================== 00-mockup.css ==================== */
/* GENERATED by extract_inline.py. Do not edit.
   One class per distinct inline style across the four CamTech mockups.
   274 classes. Re-run the extractor instead of editing. */
.cam-x001{width: 100%; min-height: 100vh; background: #F9F9F9; font-family: 'Work Sans', sans-serif; color: #0F172A}
.cam-x002{width: 100%; background: #E0742A}
.cam-x003{max-width: 1240px; margin: 0 auto; padding: 8px var(--gut); display: flex; align-items: center; justify-content: space-between}
.cam-x004{display: flex; align-items: center; gap: 8px; color: #FFFFFF; font-size: 14.5px; font-weight: 600}
.cam-x005{display: flex; align-items: center; gap: 10px}
.cam-x006{width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.22); display: flex; align-items: center; justify-content: center}
.cam-x007{width: 100%; background: #092634}
.cam-x008{max-width: 1240px; margin: 0 auto; padding: 16px var(--gut); display: flex; align-items: center; justify-content: space-between; gap: 24px}
.cam-x009{display: inline-flex; align-items: center}
.cam-x010{height: 44px; width: auto; display: block}
.cam-x011{display: flex; align-items: center; gap: 34px}
.cam-x012{color: #B9C3D9; font-size: 16px; font-weight: 500; transition: color .15s}
.cam-x013{display: flex; align-items: center; gap: 5px}
.cam-x014{position: relative; width: 100%; background: #092634; overflow: hidden; padding: 96px var(--gut) 130px}
.cam-x015{position: relative; max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center}
.cam-x016{position: absolute; top: -34px; left: 50%; transform: translateX(-50%); font-family: 'Space Grotesk', sans-serif; font-size: 92px; font-weight: 700; color: rgba(255,255,255,0.06); white-space: nowrap; letter-spacing: 0.04em; user-select: none}
.cam-x017{position: relative; margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 56px; line-height: 1.1; font-weight: 700; color: #FFFFFF}
.cam-x018{position: relative; margin: 18px 0 0; max-width: 600px; font-size: 19.5px; line-height: 1.7; color: #C7D2E6}
.cam-x019{position: relative; display: flex; align-items: center; gap: 16px; margin-top: 30px; flex-wrap: wrap; justify-content: center}
.cam-x020{display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 5px 24px 5px 5px; border-radius: 999px; font-size: 16px; font-weight: 700; transition: filter .15s}
.cam-x021{width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,0.28); display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x022{display: inline-flex; align-items: center; gap: 10px; background: #FFFFFF; color: #092634; padding: 5px 24px 5px 5px; border-radius: 999px; font-size: 16px; font-weight: 700; transition: filter .15s}
.cam-x023{width: 30px; height: 30px; border-radius: 50%; background: rgba(9,38,52,0.10); display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x024{position: relative; height: 0}
.cam-x025{position: absolute; left: 0; top: -90px; width: 100%; height: 90px; display: block}
.cam-x026{width: 100%; background: #F9F9F9; padding: 24px var(--gut) 90px}
.cam-x027{max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 44px}
.cam-x028{max-width: 640px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px}
.cam-x029{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 35px; font-weight: 700; color: #092634}
.cam-x030{margin: 0; font-size: 18px; line-height: 1.75; color: #3D4A61}
.cam-x031{display: flex; align-items: center; gap: 14px; margin-top: 6px}
.cam-x032{display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 5px 22px 5px 5px; border-radius: 999px; font-size: 15.5px; font-weight: 700}
.cam-x033{width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,0.28); display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x034{display: inline-flex; align-items: center; gap: 10px; background: transparent; border: 1.5px solid #D8DEE6; color: #092634; padding: 5px 22px 5px 5px; border-radius: 999px; font-size: 15.5px; font-weight: 700}
.cam-x035{width: 28px; height: 28px; border-radius: 50%; background: rgba(9,38,52,0.08); display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x036{display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); grid-auto-rows: 210px; gap: 20px}
.cam-x037{grid-column: span 7; position: relative; border-radius: 18px; overflow: hidden}
.cam-x038{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%}
.cam-x039{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,78,114,0.88) 0%, rgba(0,78,114,0.18) 60%)}
.cam-x040{position: absolute; left: 24px; bottom: 22px; right: 24px; display: flex; flex-direction: column; gap: 6px}
.cam-x041{font-family: 'Space Grotesk', sans-serif; font-size: 21px; font-weight: 700; color: #FFFFFF}
.cam-x042{font-size: 16.5px; line-height: 1.6; color: #DCEAF5; max-width: 360px}
.cam-x043{margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; color: #FFFFFF}
.cam-x044{width: 20px; height: 20px; border-radius: 50%; background: #E0742A; display: flex; align-items: center; justify-content: center}
.cam-x045{grid-column: span 5; position: relative; border-radius: 18px; overflow: hidden; padding: 26px; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px}
.cam-x046{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover}
.cam-x047{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(224,116,42,0.92) 0%, rgba(224,116,42,0.45) 60%)}
.cam-x048{position: relative; font-family: 'Space Grotesk', sans-serif; font-size: 21px; font-weight: 700; color: #FFFFFF}
.cam-x049{position: relative; font-size: 16.5px; line-height: 1.6; color: rgba(255,255,255,0.9)}
.cam-x050{position: relative; margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; color: #FFFFFF}
.cam-x051{width: 20px; height: 20px; border-radius: 50%; background: rgba(255,255,255,0.28); display: flex; align-items: center; justify-content: center}
.cam-x052{grid-column: span 5; position: relative; border-radius: 18px; overflow: hidden}
.cam-x053{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,78,114,0.88) 0%, rgba(0,78,114,0.25) 60%)}
.cam-x054{position: absolute; left: 22px; bottom: 20px; right: 22px; display: flex; flex-direction: column; gap: 6px}
.cam-x055{font-family: 'Space Grotesk', sans-serif; font-size: 19px; font-weight: 700; color: #FFFFFF}
.cam-x056{font-size: 16px; line-height: 1.6; color: #DCEAF5}
.cam-x057{margin-top: 4px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #FFFFFF}
.cam-x058{width: 18px; height: 18px; border-radius: 50%; background: #E0742A; display: flex; align-items: center; justify-content: center}
.cam-x059{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 70%}
.cam-x060{font-size: 16.5px; line-height: 1.6; color: #DCEAF5; max-width: 380px}
.cam-x061{width: 100%; background: radial-gradient(circle at 12% 105%, rgba(42,180,242,0.38) 0%, rgba(42,180,242,0) 52%), linear-gradient(165deg, #050C13 0%, #092634 60%, #0B3B54 100%); padding: 60px var(--gut)}
.cam-x062{max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap}
.cam-x063{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 31px; line-height: 1.25; font-weight: 700; color: #FFFFFF; max-width: 340px}
.cam-x064{display: flex; align-items: center; gap: 28px; flex-wrap: wrap}
.cam-x065{margin: 0; max-width: 320px; font-size: 17px; line-height: 1.7; color: rgba(255,255,255,0.85)}
.cam-x066{display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 5px 22px 5px 5px; border-radius: 999px; font-size: 15.5px; font-weight: 700; flex-shrink: 0}
.cam-x067{width: 100%; background: #FFFFFF; padding: 100px var(--gut) 160px}
.cam-x068{max-width: 1160px; margin: 0 auto; display: flex; flex-direction: column; gap: 56px}
.cam-x069{max-width: 560px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 14px}
.cam-x070{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 33px; font-weight: 700; color: #092634}
.cam-x071{margin: 0; font-size: 17.5px; line-height: 1.7; color: #3D4A61}
.cam-x072{display: flex; align-items: flex-start; justify-content: center; gap: 6px}
.cam-x073{display: flex; flex-direction: column; align-items: center; gap: 14px; width: 190px}
.cam-x074{width: 62px; height: 62px; border-radius: 16px; background: #E0742A; display: flex; align-items: center; justify-content: center}
.cam-x075{font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #092634; text-align: center}
.cam-x076{font-size: 16px; line-height: 1.6; color: #3D4A61; text-align: center}
.cam-x077{font-size: 14px; font-weight: 700; color: #3D4A61; transition: color .15s}
.cam-x078{margin-top: 24px; flex-shrink: 0}
.cam-x079{width: 62px; height: 62px; border-radius: 16px; background: #092634; display: flex; align-items: center; justify-content: center}
.cam-x080{position: relative; width: 100%; background: #092634; overflow: hidden; padding: 24px var(--gut) 160px}
.cam-x081{max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 56px}
.cam-x082{max-width: 620px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 14px}
.cam-x083{font-size: 15px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #2AB4F2}
.cam-x084{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 35px; font-weight: 700; color: #FFFFFF}
.cam-x085{margin: 0; font-size: 18px; line-height: 1.7; color: #C7D2E6}
.cam-x086{display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px}
.cam-x087{background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: 16px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s}
.cam-x088{width: 48px; height: 48px; border-radius: 13px; background: #E0742A; display: flex; align-items: center; justify-content: center}
.cam-x089{font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #FFFFFF}
.cam-x090{font-size: 17px; line-height: 1.6; color: #C7D2E6; flex-grow: 1}
.cam-x091{font-size: 15px; font-weight: 700; color: #2AB4F2}
.cam-x092{width: 48px; height: 48px; border-radius: 13px; background: #2AB4F2; display: flex; align-items: center; justify-content: center}
.cam-x093{display: flex; justify-content: center; gap: 24px; flex-wrap: wrap}
.cam-x094{width: 282px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: 16px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s}
.cam-x095{width: 100%; background: #FFFFFF; padding: 72px var(--gut); border-top: 1px solid #E4E8F0; border-bottom: 1px solid #E4E8F0}
.cam-x096{max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 28px}
.cam-x097{font-size: 14.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #64748F}
.cam-x098{display: flex; align-items: center; justify-content: center; gap: 48px; flex-wrap: wrap}
.cam-x099{font-family: 'Space Grotesk', sans-serif; font-size: 22px; font-weight: 700; color: #33415A; letter-spacing: 0.02em}
.cam-x100{font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #33415A; letter-spacing: 0.04em}
.cam-x101{font-family: 'Space Grotesk', sans-serif; font-size: 20px; font-weight: 700; color: #33415A; letter-spacing: 0.02em}
.cam-x102{display: flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; background: #F9F9F9; font-size: 14.5px; font-weight: 600; color: #3D4A61}
.cam-x103{width: 100%; background: radial-gradient(circle at 88% 0%, rgba(42,180,242,0.25) 0%, rgba(42,180,242,0) 50%), linear-gradient(180deg, #071019 0%, #092634 100%); padding: 100px var(--gut)}
.cam-x104{display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 16px; margin: 0 -4px}
.cam-x105{scroll-snap-align: start; flex: 0 0 340px; background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 16px; padding: 30px 26px; display: flex; flex-direction: column; gap: 16px}
.cam-x106{display: flex; gap: 3px}
.cam-x107{font-size: 18px; line-height: 1.65; color: #33415A}
.cam-x108{display: flex; align-items: center; gap: 12px; margin-top: 6px}
.cam-x109{width: 40px; height: 40px; border-radius: 50%; background: #E4E8F0}
.cam-x110{font-size: 15.5px; font-weight: 700; color: #092634}
.cam-x111{font-size: 14.5px; color: #64748F}
.cam-x112{display: flex; align-items: center; justify-content: center; gap: 8px}
.cam-x113{width: 22px; height: 6px; border-radius: 999px; background: #E0742A}
.cam-x114{width: 6px; height: 6px; border-radius: 999px; background: #D8DEE6}
.cam-x115{width: 100%; background: #FFFFFF; padding: 100px var(--gut)}
.cam-x116{max-width: 700px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 26px}
.cam-x117{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 37px; line-height: 1.2; font-weight: 700; color: #092634}
.cam-x118{font-style: italic; color: #E0742A; font-weight: 500}
.cam-x119{margin: 0; max-width: 480px; font-size: 17px; color: #3D4A61}
.cam-x120{display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 6px 26px 6px 6px; border-radius: 999px; font-size: 16.5px; font-weight: 700}
.cam-x121{width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,0.25); display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x122{width: 100%; background: #092634; padding: 56px var(--gut) 28px}
.cam-x123{max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 40px}
.cam-x124{display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,0.08)}
.cam-x125{display: flex; flex-direction: column; gap: 18px}
.cam-x126{display: inline-flex; align-items: center; width: fit-content}
.cam-x127{height: 56px; width: auto; display: block}
.cam-x128{display: flex; flex-direction: column; gap: 4px}
.cam-x129{font-size: 18px; font-weight: 700; color: #FFFFFF}
.cam-x130{font-size: 15.5px; color: #A9B8D6; margin-top: 4px}
.cam-x131{font-size: 15.5px; color: #A9B8D6}
.cam-x132{display: flex; flex-direction: column; gap: 14px}
.cam-x133{font-size: 14.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #FFFFFF}
.cam-x134{font-size: 15.5px; color: #A9B8D6; transition: color .15s}
.cam-x135{padding-top: 20px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px}
.cam-x136{font-size: 14.5px; color: #5C6A85}
.cam-x137{font-size: 14.5px; color: #5C6A85; display: flex; align-items: center; gap: 8px}
.cam-x138{font-size: 14.5px; color: #5C6A85; transition: color .15s}
.cam-x139{color: #FFFFFF; font-size: 16px; font-weight: 600; transition: color .15s}
.cam-x140{position: relative; width: 100%; background: #092634; overflow: hidden; padding: 90px var(--gut) 110px}
.cam-x141{position: absolute; top: -24px; left: 50%; transform: translateX(-50%); font-family: 'Space Grotesk', sans-serif; font-size: 92px; font-weight: 700; color: rgba(255,255,255,0.06); white-space: nowrap; letter-spacing: 0.04em; user-select: none}
.cam-x142{position: relative; display: flex; align-items: center; gap: 8px; padding: 6px 16px; border-radius: 999px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18); font-size: 13.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #2AB4F2}
.cam-x143{position: relative; margin: 18px 0 0; font-family: 'Space Grotesk', sans-serif; font-size: 46px; line-height: 1.15; font-weight: 700; color: #FFFFFF}
.cam-x144{position: relative; margin: 18px 0 0; max-width: 600px; font-size: 18px; line-height: 1.7; color: #C7D2E6}
.cam-x145{width: 100%; background: #FFFFFF; padding: 30px var(--gut) 110px}
.cam-x146{max-width: 1160px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: center}
.cam-x147{display: flex; flex-direction: column; gap: 20px}
.cam-x148{font-size: 14.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #E0742A}
.cam-x149{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 35px; line-height: 1.2; font-weight: 700; color: #092634}
.cam-x150{margin: 0; font-size: 16.5px; line-height: 1.75; color: #3D4A61}
.cam-x151{position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3.4}
.cam-x152{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,38,52,0.55) 0%, rgba(9,38,52,0) 45%)}
.cam-x153{position: absolute; left: 22px; bottom: 20px; right: 22px; display: flex; align-items: center; gap: 10px; background: rgba(9,38,52,0.85); backdrop-filter: blur(4px); border-radius: 12px; padding: 12px 16px}
.cam-x154{flex-shrink: 0}
.cam-x155{font-size: 14px; font-weight: 600; color: #FFFFFF}
.cam-x156{width: 100%; background: radial-gradient(circle at 12% 105%, rgba(42,180,242,0.38) 0%, rgba(42,180,242,0) 52%), linear-gradient(165deg, #050C13 0%, #092634 60%, #0B3B54 100%); padding: 64px var(--gut)}
.cam-x157{max-width: 1160px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 32px}
.cam-x158{display: flex; flex-direction: column; gap: 6px; text-align: center}
.cam-x159{font-family: 'Space Grotesk', sans-serif; font-size: 40px; font-weight: 700; color: #FFFFFF}
.cam-x160{font-size: 14.5px; line-height: 1.5; color: #A9B8D6}
.cam-x161{display: flex; flex-direction: column; gap: 6px; text-align: center; border-left: 1px solid rgba(255,255,255,0.12); border-right: 1px solid rgba(255,255,255,0.12)}
.cam-x162{display: flex; flex-direction: column; gap: 6px; text-align: center; border-right: 1px solid rgba(255,255,255,0.12)}
.cam-x163{position: absolute; left: 0; top: -1px; width: 100%; height: 90px; display: block}
.cam-x164{width: 100%; background: #FFFFFF; padding: 90px var(--gut) 100px; position: relative; overflow: hidden}
.cam-x165{position: absolute; top: 30px; right: -20px; font-family: 'Space Grotesk', sans-serif; font-size: 130px; font-weight: 700; color: rgba(9,38,52,0.035); white-space: nowrap; letter-spacing: 0.02em; user-select: none}
.cam-x166{position: relative; max-width: 1160px; margin: 0 auto; display: flex; flex-direction: column; gap: 44px}
.cam-x167{max-width: 620px; display: flex; flex-direction: column; gap: 14px}
.cam-x168{display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: stretch}
.cam-x169{position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 10}
.cam-x170{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,38,52,0.6) 0%, rgba(9,38,52,0) 40%)}
.cam-x171{position: absolute; left: 22px; bottom: 20px; right: 22px; font-size: 15px; font-weight: 600; color: #FFFFFF}
.cam-x172{position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3.6}
.cam-x173{position: absolute; inset: 0; background: linear-gradient(160deg, rgba(9,38,52,0.55) 0%, rgba(224,116,42,0.28) 100%)}
.cam-x174{width: 100%; background: #F9F9F9; padding: 100px var(--gut) 90px}
.cam-x175{background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 16px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s}
.cam-x176{font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #092634}
.cam-x177{font-size: 15.5px; line-height: 1.6; color: #3D4A61; flex-grow: 1}
.cam-x178{width: 100%; background: #FFFFFF; padding: 90px var(--gut)}
.cam-x179{max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 28px; text-align: center}
.cam-x180{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; color: #092634}
.cam-x181{margin: 0; max-width: 560px; font-size: 16.5px; line-height: 1.7; color: #3D4A61}
.cam-x182{display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap}
.cam-x183{padding: 10px 20px; border-radius: 999px; background: #F9F9F9; border: 1px solid #E4E8F0; font-size: 14.5px; font-weight: 600; color: #092634; transition: background .15s}
.cam-x184{width: 100%; background: #FFFFFF; padding: 56px var(--gut) 72px; border-top: 1px solid #E4E8F0}
.cam-x185{font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 700; color: #33415A; letter-spacing: 0.04em}
.cam-x186{font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #33415A; letter-spacing: 0.02em}
.cam-x187{width: 100%; background: #F9F9F9; padding: 100px var(--gut); border-top: 1px solid #E4E8F0}
.cam-x188{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 34px; line-height: 1.2; font-weight: 700; color: #092634}
.cam-x189{display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 6px 26px 6px 6px; border-radius: 999px; font-size: 14.5px; font-weight: 700}
.cam-x190{font-size: 16px; font-weight: 700; color: #FFFFFF}
.cam-x191{font-size: 13.5px; color: #A9B8D6; margin-top: 4px}
.cam-x192{font-size: 13.5px; color: #A9B8D6}
.cam-x193{font-size: 15.5px; color: #FFFFFF; transition: color .15s}
.cam-x194{position: relative; width: 100%; background: #092634; overflow: hidden; padding: 96px var(--gut) 120px}
.cam-x195{position: relative; max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center}
.cam-x196{position: absolute; top: -30px; left: 50%; transform: translateX(-50%); font-family: 'Space Grotesk', sans-serif; font-size: 92px; font-weight: 700; color: rgba(255,255,255,0.05); white-space: nowrap; letter-spacing: 0.04em; user-select: none}
.cam-x197{width: 100%; background: #F9F9F9; padding: 30px var(--gut) 70px}
.cam-x198{max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px}
.cam-x199{display: flex; align-items: center; gap: 14px; background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 14px; padding: 20px 22px}
.cam-x200{width: 44px; height: 44px; border-radius: 12px; background: #E0742A; display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x201{font-family: 'Space Grotesk', sans-serif; font-size: 20px; font-weight: 700; color: #092634}
.cam-x202{font-size: 13.5px; color: #3D4A61}
.cam-x203{width: 44px; height: 44px; border-radius: 12px; background: #2AB4F2; display: flex; align-items: center; justify-content: center; flex-shrink: 0}
.cam-x204{width: 100%; padding: 20px var(--gut) 100px}
.cam-x205{max-width: 1160px; margin: 0 auto; display: flex; flex-direction: column; gap: 40px}
.cam-x206{margin: 0; text-align: center; font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; color: #092634}
.cam-x207{display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 18px; overflow: hidden; transition: transform .18s, box-shadow .18s}
.cam-x208{position: relative; width: 100%; aspect-ratio: 16/10; overflow: hidden}
.cam-x209{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,38,52,0.6) 0%, rgba(9,38,52,0.05) 60%)}
.cam-x210{position: absolute; left: 14px; bottom: -20px; width: 44px; height: 44px; border-radius: 12px; background: #E0742A; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(9,38,52,0.28)}
.cam-x211{padding: 30px 18px 22px; display: flex; flex-direction: column; gap: 8px; flex-grow: 1}
.cam-x212{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #092634}
.cam-x213{margin: 0; font-size: 13.5px; line-height: 1.6; color: #3D4A61; flex-grow: 1}
.cam-x214{display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px}
.cam-x215{padding: 5px 10px; border-radius: 999px; background: #F9F9F9; border: 1px solid #E4E8F0; font-size: 11.5px; font-weight: 600; color: #092634}
.cam-x216{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(224,116,42,0.6) 0%, rgba(224,116,42,0.05) 60%)}
.cam-x217{position: absolute; left: 14px; bottom: -20px; width: 44px; height: 44px; border-radius: 12px; background: #2AB4F2; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(9,38,52,0.28)}
.cam-x218{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(42,180,242,0.55) 0%, rgba(9,38,52,0.05) 60%)}
.cam-x219{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,38,52,0.6) 0%, rgba(9,38,52,0.05) 55%)}
.cam-x220{position: absolute; inset: 0; background: linear-gradient(0deg, rgba(224,116,42,0.55) 0%, rgba(9,38,52,0.05) 60%)}
.cam-x221{position: relative; width: 100%; aspect-ratio: 16/10; overflow: hidden; background: linear-gradient(155deg, #092634 0%, #0B3B54 100%)}
.cam-x222{position: absolute; top: -10px; right: -10px; font-family: 'Space Grotesk', sans-serif; font-size: 78px; font-weight: 700; color: rgba(255,255,255,0.05); user-select: none}
.cam-x223{position: absolute; bottom: -14px; left: -6px; font-family: 'Space Grotesk', sans-serif; font-size: 72px; font-weight: 700; color: rgba(255,255,255,0.05); user-select: none}
.cam-x224{width: 100%; background: #092634; padding: 24px var(--gut) 100px}
.cam-x225{max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; gap: 44px}
.cam-x226{margin: 0; text-align: center; font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; color: #FFFFFF}
.cam-x227{display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px}
.cam-x228{display: flex; flex-direction: column; gap: 12px; text-align: center; align-items: center}
.cam-x229{font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #FFFFFF}
.cam-x230{font-size: 14px; line-height: 1.6; color: #C7D2E6}
.cam-x231{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 28px; line-height: 1.25; font-weight: 700; color: #FFFFFF; max-width: 380px}
.cam-x232{margin: 0; max-width: 320px; font-size: 15.5px; line-height: 1.7; color: #C7D2E6}
.cam-x233{position: relative; width: 100%; background: #092634; overflow: hidden; padding: 70px var(--gut) 110px}
.cam-x234{position: absolute; top: -22px; left: 50%; transform: translateX(-50%); font-family: 'Space Grotesk', sans-serif; font-size: 86px; font-weight: 700; color: rgba(255,255,255,0.05); white-space: nowrap; letter-spacing: 0.04em; user-select: none}
.cam-x235{position: relative; display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: #A9B8D6}
.cam-x236{color: #A9B8D6}
.cam-x237{color: #FFFFFF; font-weight: 600}
.cam-x238{position: relative; width: 52px; height: 52px; border-radius: 14px; background: #E0742A; display: flex; align-items: center; justify-content: center; margin-top: 20px}
.cam-x239{position: relative; margin: 18px 0 0; font-family: 'Space Grotesk', sans-serif; font-size: 44px; line-height: 1.15; font-weight: 700; color: #FFFFFF}
.cam-x240{position: relative; display: flex; align-items: center; gap: 14px; margin-top: 28px; flex-wrap: wrap; justify-content: center}
.cam-x241{display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.24); color: #FFFFFF; padding: 11px 22px; border-radius: 999px; font-size: 15.5px; font-weight: 700}
.cam-x242{font-family: 'Space Grotesk', sans-serif; font-size: 16px; font-weight: 700; color: #092634}
.cam-x243{width: 100%; background: #FFFFFF; padding: 20px var(--gut) 90px; border-top: 1px solid #E4E8F0}
.cam-x244{max-width: 640px; display: flex; flex-direction: column; gap: 14px}
.cam-x245{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 32px; line-height: 1.2; font-weight: 700; color: #092634}
.cam-x246{display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px}
.cam-x247{display: flex; align-items: flex-start; gap: 14px; background: #F9F9F9; border: 1px solid #E4E8F0; border-radius: 14px; padding: 20px}
.cam-x248{flex-shrink: 0; margin-top: 2px}
.cam-x249{font-family: 'Space Grotesk', sans-serif; font-size: 15.5px; font-weight: 700; color: #092634}
.cam-x250{font-size: 13.5px; line-height: 1.55; color: #3D4A61; margin-top: 4px}
.cam-x251{width: 100%; background: radial-gradient(circle at 88% 0%, rgba(42,180,242,0.3) 0%, rgba(42,180,242,0) 50%), linear-gradient(165deg, #050C13 0%, #092634 60%, #0B3B54 100%); padding: 130px var(--gut) 100px}
.cam-x252{max-width: 1160px; margin: 0 auto; display: flex; flex-direction: column; gap: 44px}
.cam-x253{font-size: 14.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #2AB4F2}
.cam-x254{margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 32px; font-weight: 700; color: #FFFFFF}
.cam-x255{display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px}
.cam-x256{background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.14); border-radius: 18px; padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s}
.cam-x257{width: 44px; height: 44px; border-radius: 12px; background: #E0742A; display: flex; align-items: center; justify-content: center}
.cam-x258{font-size: 14.5px; line-height: 1.65; color: #C7D2E6; flex-grow: 1}
.cam-x259{background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.2); border-radius: 18px; padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s}
.cam-x260{width: 44px; height: 44px; border-radius: 12px; background: #2AB4F2; display: flex; align-items: center; justify-content: center}
.cam-x261{width: 100%; background: #FFFFFF; padding: 90px var(--gut) 100px}
.cam-x262{background: #F9F9F9; border: 1px solid #E4E8F0; border-radius: 18px; padding: 28px 24px; display: flex; flex-direction: column; gap: 18px}
.cam-x263{margin: 0; font-size: 15px; line-height: 1.65; color: #3D4A61; flex-grow: 1}
.cam-x264{font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 700; color: #092634}
.cam-x265{font-size: 13px; color: #64748F}
.cam-x266{width: 100%; background: #F9F9F9; padding: 56px var(--gut); border-top: 1px solid #E4E8F0}
.cam-x267{max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 24px}
.cam-x268{font-size: 13.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #64748F}
.cam-x269{display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap}
.cam-x270{font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #33415A}
.cam-x271{font-family: 'Space Grotesk', sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0.04em; color: #33415A}
.cam-x272{font-family: 'Space Grotesk', sans-serif; font-size: 16px; font-weight: 700; color: #33415A}
.cam-x273{width: 100%; background: #FFFFFF; padding: 100px var(--gut); border-top: 1px solid #E4E8F0}
.cam-x274{margin: 0; max-width: 480px; font-size: 16px; color: #3D4A61}

/* ==================== 05-responsive.css ==================== */
/* GENERATED by responsive.py from 00-mockup.css + dom-facts.json. Do not edit.
   The mockups carry no media queries at all; this is the whole responsive layer. */

:root{ --gut: 32px; }
@media (max-width: 1303px){ :root{ --gut: 24px; } }
@media (max-width: 1022px){ :root{ --gut: 16px; } }

@media (max-width: 1023px){
  .cam-x086,.cam-x157,.cam-x198,.cam-x227,.cam-x246,.cam-x255{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .cam-x036{ grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 230px; }
  .cam-x037,.cam-x045,.cam-x052{ grid-column: auto; }
}
@media (max-width: 767px){
  .cam-x198,.cam-x227,.cam-x246,.cam-x255{ grid-template-columns: repeat(1, minmax(0,1fr)); }
  .cam-x086,.cam-x157{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .cam-x036{ grid-template-columns: minmax(0,1fr); grid-auto-rows: 240px; }
}

@media (max-width: 1023px){
}

/* Headline type: clamp() rather than a breakpoint step. */
.cam-x165{ font-size: clamp(78px, 9.03vw, 130px); }
.cam-x016,.cam-x141,.cam-x196{ font-size: clamp(55px, 6.39vw, 92px); }
.cam-x234{ font-size: clamp(52px, 5.97vw, 86px); }
.cam-x222{ font-size: clamp(47px, 5.42vw, 78px); }
.cam-x223{ font-size: clamp(43px, 5.0vw, 72px); }
.cam-x017{ font-size: clamp(34px, 3.89vw, 56px); }
.cam-x143{ font-size: clamp(28px, 3.19vw, 46px); }
.cam-x239{ font-size: clamp(26px, 3.06vw, 44px); }
.cam-x159{ font-size: clamp(24px, 2.78vw, 40px); }
.cam-x117{ font-size: clamp(22px, 2.57vw, 37px); }
.cam-x029,.cam-x084,.cam-x149{ font-size: clamp(22px, 2.43vw, 35px); }
.cam-x188{ font-size: clamp(22px, 2.36vw, 34px); }

img, svg, video { max-width: 100%; }
img { height: auto; }

/* Elementor's `.elementor img{height:auto}` is (0,1,1) and outranks every single-class
   rule. Restated at (0,2,1) so the photographs fill the boxes they were drawn to fill. */
.elementor img.cam-x010, .cam-page img.cam-x010{ height: 44px; width: auto; max-width: none; }
.elementor img.cam-x038, .cam-page img.cam-x038{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; max-width: none; }
.elementor img.cam-x046, .cam-page img.cam-x046{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; max-width: none; }
.elementor img.cam-x059, .cam-page img.cam-x059{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 70%; max-width: none; }
.elementor img.cam-x127, .cam-page img.cam-x127{ height: 56px; width: auto; max-width: none; }


/* ==================== 06-grounds.css ==================== */
/* GENERATED by grounds.py from grounds.json. Do not edit. */
.cam-x014 > .cam-ground, .cam-sec.cam-x014 .elementor-widget.cam-ground > img { object-position: center 32%; }
.cam-x014 .cam-scrim { background: linear-gradient(180deg, rgba(9,38,52,0.62) 0%, rgba(9,38,52,0.84) 55%, rgba(9,38,52,0.95) 100%); }
.cam-x080 > .cam-ground, .cam-sec.cam-x080 .elementor-widget.cam-ground > img { object-position: center; }
.cam-x080 .cam-scrim { background: linear-gradient(180deg, rgba(9,38,52,0.93), rgba(9,38,52,0.97)); }
.cam-x140 > .cam-ground, .cam-sec.cam-x140 .elementor-widget.cam-ground > img { object-position: center; }
.cam-x140 .cam-scrim { background: linear-gradient(180deg, rgba(9,38,52,0.72) 0%, rgba(9,38,52,0.88) 55%, rgba(9,38,52,0.96) 100%); }
.cam-x194 > .cam-ground, .cam-sec.cam-x194 .elementor-widget.cam-ground > img { object-position: center; }
.cam-x194 .cam-scrim { background: linear-gradient(180deg, rgba(9,38,52,0.82) 0%, rgba(9,38,52,0.9) 55%, rgba(9,38,52,0.97) 100%); }
.cam-x233 > .cam-ground, .cam-sec.cam-x233 .elementor-widget.cam-ground > img { object-position: center; }
.cam-x233 .cam-scrim { background: linear-gradient(180deg, rgba(9,38,52,0.8) 0%, rgba(9,38,52,0.9) 55%, rgba(9,38,52,0.97) 100%); }

/* ==================== 10-bridge.css ==================== */
/* ============================================================================
   10-bridge.css — mockup <-> WordPress + Elementor reconciliation, and the
   measured colour corrections.

   Measured (not eyeballed) against the mockup's own palette:
     white text on the brand orange #E0742A     3.13:1  fails 4.5 for 14-16px text
     orange eyebrow text on #F9F9F9             3.1:1   fails
     footer small text #5C6A85 on navy #092634  2.88:1  fails
     ghost-button border #D8DEE6 on white       1.35:1  fails 3:1 for a UI boundary
   So the brand orange stays wherever it is a graphic (icon tiles with a white glyph
   measure 3.13, which passes the 3:1 graphical bar; chevrons, dots, scrims, the
   italic 37px heading tail) and an ink variant carries any small text:
     --cam-orange-ink #B5591A  4.52 on #F9F9F9, 4.76 on white
     footer small text #7C8AA4 4.50 on navy
     border #8396B0            3.02 on white
   ========================================================================== */
:root {
  --cam-navy: #092634; --cam-orange: #E0742A; --cam-orange-ink: #B5591A;
  --cam-sky: #2AB4F2; --cam-sky-ink: #0B7EB2; --cam-deep: #004E72;
  --cam-ink: #0F172A; --cam-body: #3D4A61; --cam-muted: #64748F;
  --cam-light: #F9F9F9; --cam-line: #E4E8F0;
}

/* -- 1. the mockup's global resets vs WordPress prose ------------------------ */
.elementor-widget-text-editor p, .cam-prose p { margin: 0 0 1.15em; }
.elementor-widget-text-editor p:last-child, .cam-prose p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor ul, .elementor-widget-text-editor ol, .cam-prose ul, .cam-prose ol { margin: 0 0 1.15em; padding-left: 1.25em; }
.elementor-widget-text-editor li, .cam-prose li { margin: 0 0 .45em; }
.elementor-widget-heading h1, .elementor-widget-heading h2, .elementor-widget-heading h3, .elementor-widget-heading h4 { margin: 0; }

/* -- 2. WordPress body classes: whatever else happens, the body scrolls ------- */
body { overflow: visible !important; width: auto !important; background: #F9F9F9; }
body.cam-page { font-family: 'Work Sans', sans-serif; color: #0F172A; }

/* -- 3. the page wrapper ----------------------------------------------------- */
.cam-page.cam-x001 { min-height: 100vh; display: flex; flex-direction: column; }
#main { flex: 1 0 auto; }
.admin-bar .cam-page.cam-x001 { min-height: calc(100vh - 32px); }

/* -- 4. Elementor's containers ------------------------------------------------ */
.cam-el-band > .elementor-container, .cam-el-band > .e-con-inner { max-width: none; width: 100%; }
.cam-el-band.elementor-section { padding: 0; }
.cam-el-band > .elementor-container > .elementor-column { padding: 0; }
.elementor-widget:not(:last-child) { margin-bottom: 0; }

/* -- 5. images inside Elementor widgets --------------------------------------- */
.elementor-widget-image { line-height: 0; }
.elementor-widget-image img { display: block; width: 100%; height: auto; }

/* -- 6. theme and editor button markup ---------------------------------------- */
.cam-page .wp-block-button__link, .cam-page .wp-element-button { all: unset; }

/* -- 7. link colour ------------------------------------------------------------
   The mockups set no link colour at all (every link is inline-styled). Prose links
   take the orange ink; links on dark bands are white. */
.cam-page a { color: inherit; }
.cam-prose a:not(.cam-btn), .elementor-widget-text-editor a:not(.cam-btn), .cam-faq-a a, .cam-post-body a { color: var(--cam-orange-ink); text-decoration: underline; text-underline-offset: 2px; }
.cam-prose a:not(.cam-btn):hover, .elementor-widget-text-editor a:not(.cam-btn):hover { color: var(--cam-navy); }
a.cam-plain { text-decoration: none; color: inherit; }

/* -- 8. measured colour corrections ------------------------------------------ */
.cam-x002 { background: var(--cam-orange-ink); }                 /* top bar, white 14.5px text */
.cam-x020, .cam-x032, .cam-x066, .cam-x120, .cam-x189 { background: var(--cam-orange-ink); } /* orange pills, white text */
.cam-x148 { color: var(--cam-orange-ink); }                      /* eyebrows on light grounds */
.cam-x136, .cam-x137, .cam-x138 { color: #7C8AA4; }              /* footer small text on navy */
.cam-x034 { border-color: #8396B0; }                             /* ghost pill boundary */
.cam-x077 { color: var(--cam-body); }
.cam-x083, .cam-x253 { color: var(--cam-sky); }                  /* sky eyebrows on navy: 6.66 */
.cam-x118 { color: var(--cam-orange); }                          /* 37px italic: large text, 3.13 passes 3:1 */

/* -- 9. focus ------------------------------------------------------------------ */
.cam-page a:focus-visible, .cam-page button:focus-visible, .cam-page input:focus-visible,
.cam-page select:focus-visible, .cam-page textarea:focus-visible, .cam-page summary:focus-visible {
  outline: 3px solid var(--cam-sky); outline-offset: 2px; border-radius: 4px;
}

/* -- 10. print ------------------------------------------------------------------ */
@media print {
  .cam-topbar, .cam-nav, .cam-nav-toggle, .cam-foot, .cam-chevron { display: none; }
  .cam-page { min-height: 0; }
}

/* ==================== 20-nav.css ==================== */
/* ============================================================================
   20-nav.css — header, navigation, dropdown and the mobile drawer.
   The mockups draw the nav as a flat row with a chevron on "Services" and no
   mobile state; everything below is what a real site needs and a mockup does not.
   ========================================================================== */
.cam-skip { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.cam-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; margin: 0; padding: 12px 20px; clip: auto; clip-path: none; background: var(--cam-orange-ink); color: #fff; border-radius: 999px; font-weight: 700; }

/* top bar */
.cam-topbar a { color: #fff; }
.cam-topbar .cam-x004:hover { text-decoration: underline; }
.cam-topbar .cam-x006 svg { display: block; }
.cam-topbar .cam-x006:hover { background: rgba(255,255,255,.4); }

/* nav bar */
.cam-nav { position: relative; z-index: 60; }
.cam-nav .cam-x008 { position: relative; }
.cam-logo { flex-shrink: 0; }
.cam-logo img { height: 44px; width: auto; display: block; }
.cam-logo-txt { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 24px; color: #fff; }
.cam-menu-list { display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; list-style: none; }
.cam-menu-list li { position: relative; margin: 0; display: flex; align-items: center; gap: 5px; }
.cam-menu-list a { white-space: nowrap; }
.cam-menu-list > li > a { color: #B9C3D9; font-size: 16px; font-weight: 500; transition: color .15s; }
.cam-menu-list > li > a:hover, .cam-menu-list > li.current-menu-item > a, .cam-menu-list > li.current-menu-parent > a, .cam-menu-list > li.current-page-ancestor > a { color: #fff; font-weight: 600; }

/* dropdown: the real Services item has seven children. Links stay in the DOM. */
.cam-menu-list .sub-menu { position: absolute; top: calc(100% + 14px); left: -16px; z-index: 70; display: block; min-width: 260px; margin: 0; padding: 10px 0; list-style: none; background: #fff; border: 1px solid var(--cam-line); border-top: 3px solid var(--cam-orange); border-radius: 0 0 12px 12px; box-shadow: 0 18px 40px rgba(15,23,42,.14); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .14s ease, transform .14s ease, visibility .14s; }
.cam-menu-list .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -17px; height: 17px; }
.cam-menu-list li:hover > .sub-menu, .cam-menu-list li:focus-within > .sub-menu, .cam-menu-list li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.cam-menu-list .sub-menu li { display: block; }
.cam-menu-list .sub-menu a { display: block; padding: 9px 20px; white-space: normal; font-size: 15px; font-weight: 500; color: var(--cam-navy); }
.cam-menu-list .sub-menu a:hover, .cam-menu-list .sub-menu a:focus-visible, .cam-menu-list .sub-menu .current-menu-item > a { background: var(--cam-light); color: var(--cam-orange-ink); }
.cam-menu-list .sub-toggle { display: inline-flex; align-items: center; background: none; border: 0; cursor: pointer; padding: 6px 4px; color: #7E8CA6; }
.cam-menu-list .sub-toggle svg { display: block; transition: transform .15s; }
.cam-menu-list li.is-open > .sub-toggle svg { transform: rotate(180deg); }

/* the toggle and the drawer */
.cam-nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 46px; height: 42px; padding: 0 10px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 10px; cursor: pointer; }
.cam-nav-toggle span { display: block; height: 2px; background: #fff; border-radius: 2px; transition: transform .18s ease, opacity .18s ease; }
.cam-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.cam-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.cam-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Five items plus the logo stop fitting a little under 860px. */
@media (max-width: 860px) {
  .cam-nav-toggle { display: flex; }
  .cam-menu { position: absolute; top: 100%; left: 0; right: 0; z-index: 65; flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--gut) 20px; background: var(--cam-navy); border-top: 1px solid rgba(255,255,255,.1); box-shadow: 0 20px 40px rgba(15,23,42,.3); display: none; }
  .cam-nav.is-open .cam-menu { display: flex; }
  .cam-menu-list { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
  .cam-menu-list li { border-bottom: 1px solid rgba(255,255,255,.08); flex-wrap: wrap; }
  .cam-menu-list > li > a { display: block; padding: 14px 0; flex: 1 1 auto; }
  .cam-menu-list .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; min-width: 0; width: 100%; margin: 0 0 10px; padding: 0 0 0 14px; border: 0; border-left: 3px solid var(--cam-orange); border-radius: 0; box-shadow: none; background: transparent; display: none; }
  .cam-menu-list li.is-open > .sub-menu { display: block; }
  .cam-menu-list .sub-menu a { color: #B9C3D9; padding: 10px 0; }
  .cam-menu-list .sub-menu a:hover { background: none; color: #fff; }
  .cam-menu-list .sub-toggle { padding: 12px 10px; color: #B9C3D9; }
}
@media (hover: none) {
  .cam-menu-list li:hover > .sub-menu { opacity: 0; visibility: hidden; }
  .cam-menu-list li.is-open > .sub-menu { opacity: 1; visibility: visible; }
}
html:not(.cam-js) .cam-nav-toggle { display: none; }
@media (max-width: 860px) { html:not(.cam-js) .cam-menu { position: static; display: flex; box-shadow: none; } }
@media (max-width: 560px) { .cam-topbar .cam-x004 { font-size: 13px; } }

/* ==================== 30-form.css ==================== */
/* ============================================================================
   30-form.css — the contact form, in the mockup's card language.
   Field boundaries use #8396B0 (3.02:1 on white) rather than the mockup's
   #E4E8F0 rule colour, which measures 1.2:1 and fails WCAG 1.4.11.
   ========================================================================== */
.formcard { background: #fff; border: 1px solid var(--cam-line); border-radius: 18px; padding: 36px; box-shadow: 0 18px 40px rgba(15,23,42,.06); }
.formcard > h2 { font-family: 'Space Grotesk', sans-serif; font-size: 26px; font-weight: 700; color: var(--cam-navy); margin: 0 0 6px; }
.formcard .sub { font-size: 15px; color: var(--cam-body); line-height: 1.6; margin: 0 0 22px; }
.form-req { font-size: 13px; color: var(--cam-body); margin: 0 0 14px; }
.cam-form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px 20px; }
.cam-form .frow { display: contents; }
.cam-form .field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.cam-form .field-full, .cam-form .form-consent, .cam-form .form-privacy, .cam-form .form-notice, .cam-form .form-req, .cam-form > button, .cam-form .hint-foot { grid-column: 1 / -1; }
.cam-form label { font-size: 13.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--cam-body); }
.cam-form input[type="text"], .cam-form input[type="tel"], .cam-form input[type="email"], .cam-form select, .cam-form textarea {
  width: 100%; box-sizing: border-box; border: 1px solid #8396B0; background: #fff; border-radius: 10px; padding: 13px 15px; font-size: 16px; font-family: inherit; color: var(--cam-ink);
}
.cam-form textarea { min-height: 140px; resize: vertical; }
.cam-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #3D4A61 50%), linear-gradient(135deg, #3D4A61 50%, transparent 50%); background-position: calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px); background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 42px; }
.cam-form ::placeholder { color: #5D6B78; opacity: 1; }
.cam-form input:focus, .cam-form select:focus, .cam-form textarea:focus { border-color: var(--cam-sky-ink); outline: 2px solid var(--cam-sky-ink); outline-offset: 0; }
.cam-form .hint { font-size: 13px; color: var(--cam-body); line-height: 1.5; }
.cam-form .form-consent { font-size: 14px; color: var(--cam-ink); margin: 2px 0 0; }
.cam-form .form-consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--cam-ink); line-height: 1.5; }
.cam-form .form-consent input { margin-top: 3px; width: 17px; height: 17px; flex-shrink: 0; accent-color: var(--cam-orange-ink); }
.cam-form .form-privacy { font-size: 13px; color: var(--cam-body); margin: 0; }
.cam-form button[type="submit"] { justify-self: start; cursor: pointer; border: 0; font-family: inherit; }
.form-notice { display: flex; flex-direction: column; gap: 4px; border-left: 4px solid #2F7A4F; background: #EEF6F1; padding: 16px 18px; border-radius: 10px; font-size: 15px; color: #123D27; }
.form-notice-err { border-left-color: #B5591A; background: #FBEDEE; color: #6B0A12; }
.form-notice strong { font-weight: 600; }
.hint-foot { font-size: 14px; color: var(--cam-body); margin: 4px 0 0; }
@media (max-width: 767px) { .formcard { padding: 22px 18px; } .cam-form { grid-template-columns: 1fr; } .cam-form .field { grid-column: 1 / -1; } .cam-form button[type="submit"] { justify-self: stretch; justify-content: center; } }

/* ==================== 40-newbands.css ==================== */
/* ============================================================================
   40-newbands.css — the bands the mockups never drew: prose, FAQ, link cards,
   contact, map, blog grid, single posts and the sitemap. Built from the mockups'
   own vocabulary: the 16-18px radius card, the #E4E8F0 rule, Space Grotesk heads.
   ========================================================================== */
.cam-prose { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.cam-band-prose > .cam-prose { margin: 0 auto; }
.cam-prose p { font-size: 17px; line-height: 1.75; color: var(--cam-body); margin: 0; }
.cam-prose h3 { font-family: 'Space Grotesk', sans-serif; font-size: 22px; font-weight: 700; color: var(--cam-navy); margin: 14px 0 0; line-height: 1.2; }
.cam-list { margin: 0; padding-left: 1.3em; color: var(--cam-body); font-size: 17px; line-height: 1.7; display: flex; flex-direction: column; gap: 6px; }
.cam-list li::marker { color: var(--cam-orange); }
.cam-nomedia .cam-x146.cam-one { grid-template-columns: minmax(0, 820px); justify-content: center; }

/* FAQ: <details>, every answer in the HTML whether open or shut */
.cam-faq-list { display: flex; flex-direction: column; gap: 12px; max-width: 900px; }
.cam-faq { background: #fff; border: 1px solid var(--cam-line); border-radius: 14px; padding: 0 22px; }
.cam-band-faq.cam-x145 .cam-faq { background: var(--cam-light); }
.cam-faq-q { list-style: none; cursor: pointer; padding: 18px 44px 18px 0; position: relative; }
.cam-faq-q::-webkit-details-marker { display: none; }
.cam-faq-q h3 { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--cam-navy); margin: 0; }
.cam-faq-q:hover h3 { color: var(--cam-orange-ink); }
.cam-faq-q::after { content: ""; position: absolute; right: 2px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: var(--cam-orange) linear-gradient(#fff,#fff) center/12px 2px no-repeat; }
.cam-faq-q::before { content: ""; position: absolute; right: 2px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: linear-gradient(#fff,#fff) center/2px 12px no-repeat; z-index: 1; transition: transform .18s; }
.cam-faq[open] .cam-faq-q::before { transform: rotate(90deg); opacity: 0; }
.cam-faq-a { padding: 0 44px 20px 0; }
.cam-faq-a p { font-size: 16px; line-height: 1.7; color: var(--cam-body); margin: 0 0 .8em; }
.cam-faq-a p:last-child { margin-bottom: 0; }

/* crumbs inside the hero */
.cam-crumbs { position: relative; display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: #A9B8D6; flex-wrap: wrap; justify-content: center; }
.cam-crumbs a:hover { color: #fff; }

/* hub link cards (the values card, linked) */
.cam-linkcard { position: relative; }
.cam-linkcard h3 a:hover { color: var(--cam-orange-ink); }

/* contact */
.cam-contact-grid { align-items: start; }
.cam-nap-list { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.cam-nap-list .cam-info { background: var(--cam-light); }
.cam-nap-list .cam-x201 { font-size: 17px; }
.cam-formcol { min-width: 0; }
.cam-map-frame { display: block; width: 100%; border: 0; border-radius: 18px; }

/* blog grid, in the services-grid card language */
.cam-posts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.cam-post-card { display: flex; flex-direction: column; color: inherit; }
.cam-post-card:hover h3 { color: var(--cam-orange-ink); }
.cam-post-media { background: var(--cam-navy); }
.cam-post-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cam-post-card .cam-x211 { gap: 10px; }
.cam-post-card .cam-x212 { font-size: 18px; line-height: 1.3; }
.cam-post-card .cam-x213 { font-size: 14.5px; }
@media (max-width: 1023px) { .cam-posts { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px)  { .cam-posts { grid-template-columns: 1fr; } }

/* single posts: the theme's header styled like a page hero, content in the prose measure */
body.single-post .site-main { padding: 0 0 80px; }
body.single-post .site-main > .page-header { background: var(--cam-navy); padding: 72px var(--gut) 64px; text-align: center; }
body.single-post .site-main > .page-header .entry-title { font-family: 'Space Grotesk', sans-serif; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.15; font-weight: 700; color: #fff; margin: 0 auto; max-width: 860px; }
body.single-post .site-main > .page-header .entry-meta, body.single-post .post-tags, body.single-post .post-navigation { max-width: 780px; margin: 10px auto 0; padding: 0 var(--gut); font-size: 14px; color: #A9B8D6; }
body.single-post .site-main > .page-header .entry-meta a { color: #fff; }
body.single-post .site-main > .page-content, body.single-post .entry-content { padding: 48px var(--gut) 0; }
.cam-post-body { gap: 16px; }
.cam-post-body h2, .cam-post-body h3, .cam-post-body h4 { font-family: 'Space Grotesk', sans-serif; color: var(--cam-navy); line-height: 1.25; margin: 18px 0 0; }
.cam-post-body h2 { font-size: 28px; } .cam-post-body h3 { font-size: 22px; } .cam-post-body h4 { font-size: 18px; }
.cam-post-body ul, .cam-post-body ol { margin: 0; padding-left: 1.3em; color: var(--cam-body); font-size: 17px; line-height: 1.7; }
.cam-post-body img { max-width: 100%; height: auto; border-radius: 14px; }
.cam-post-body figure { margin: 0; }
.cam-post-cta { margin-top: 24px; padding: 24px 26px; background: var(--cam-light); border: 1px solid var(--cam-line); border-radius: 16px; display: flex; flex-direction: column; gap: 8px; }
.cam-post-back { margin-top: 8px; }
body.single-post .post-navigation, body.single-post .post-tags { margin-top: 24px; color: var(--cam-body); }
body.single-post .comments-area { display: none; }

/* sitemap */
.cam-sitemap { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 36px 40px; }
.cam-sitemap h2 { color: var(--cam-navy); margin: 0 0 12px; }
.cam-sitemap ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cam-sitemap a { color: var(--cam-body); font-size: 15.5px; }
.cam-sitemap a:hover { color: var(--cam-orange-ink); }
@media (max-width: 1023px) { .cam-sitemap { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px)  { .cam-sitemap { grid-template-columns: 1fr; } }

/* review context (the owner's explanation, once Tier 3 arrives) */
.cam-review-context { border-top: 1px solid var(--cam-line); padding-top: 12px; font-size: 14.5px; color: var(--cam-body); }

/* ==================== 45-fixes.css ==================== */
/* ============================================================================
   45-fixes.css — hand-written helpers the band library relies on: the chevron
   seams, the photo grounds under heroes, the CSS-drawn button icon discs, the
   step arrows, card layouts restructured for native widgets, and the mobile
   rules the generated layer cannot derive.
   ========================================================================== */
.cam-rel { position: relative; }

/* chevron seams: a zero-height band whose polygon overlaps the band above */
.cam-chevron { position: relative; height: 0; z-index: 5; pointer-events: none; }
.cam-chevron svg { position: absolute; left: 0; top: -90px; width: 100%; height: 90px; display: block; }
.elementor-section.cam-whole-x024, .elementor-section.cam-el-band:has(> .elementor-container .cam-chevron) { height: 0; position: relative; z-index: 5; overflow: visible; }

/* photo grounds under heroes and the services band */
.cam-ground, .elementor-widget.cam-ground > img, .cam-sec .elementor-widget.cam-ground > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; max-width: none; z-index: 0; }
.cam-scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.cam-band-hero > .cam-x015, .cam-pagehero > .cam-x015, .cam-band-services > .cam-x081 { position: relative; z-index: 2; }
.cam-sec > .elementor-container > .cam-col:not(.cam-ground) { z-index: 2; }
.cam-sec .elementor-widget.cam-ground { position: static; }

/* ghost words and overlays never catch the pointer */
.cam-x016, .cam-x141, .cam-x165, .cam-x196, .cam-x234, .cam-x222, .cam-x223 { pointer-events: none; }

/* the icon disc inside a pill button, drawn by CSS so the button can be a text-only
   anchor (and therefore a native Button widget). The Button widget renders the <a>
   as the widget's DIRECT child (no wrapper div, verified in the DOM), and the widget
   div itself also carries cam-btn, so the pseudo-elements are suppressed there. */
.cam-btn { text-decoration: none; cursor: pointer; }
.elementor-widget.cam-btn::before, .elementor-widget.cam-btn::after { content: none !important; }
.cam-btn.cam-ic-arrow::before, .cam-btn.cam-ic-arrow-navy::before, .cam-btn.cam-ic-phone::before, .cam-btn.cam-ic-dot::before,
.elementor-widget.cam-ic-arrow > .elementor-button::before, .elementor-widget.cam-ic-arrow-navy > .elementor-button::before,
.elementor-widget.cam-ic-phone > .elementor-button::before, .elementor-widget.cam-ic-dot > .elementor-button::before {
  content: ""; display: inline-block; width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
  background-color: rgba(255,255,255,.28); background-repeat: no-repeat; background-position: center; background-size: 14px 14px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M13 6l6 6-6 6'/></svg>");
}
.cam-btn.cam-ic-arrow-navy::before, .elementor-widget.cam-ic-arrow-navy > .elementor-button::before { background-color: rgba(9,38,52,.08); background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23092634' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M13 6l6 6-6 6'/></svg>"); }
.cam-btn.cam-ic-phone::before, .elementor-widget.cam-ic-phone > .elementor-button::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.78.63 2.63a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.45-1.2a2 2 0 0 1 2.11-.45c.85.3 1.73.51 2.63.63A2 2 0 0 1 22 16.92z'/></svg>"); }
.cam-x022.cam-ic-phone::before, .elementor-widget.cam-w-x022.cam-ic-phone > .elementor-button::before { background-color: rgba(9,38,52,.10); background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23092634' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.78.63 2.63a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.45-1.2a2 2 0 0 1 2.11-.45c.85.3 1.73.51 2.63.63A2 2 0 0 1 22 16.92z'/></svg>"); }
.cam-x032.cam-ic-arrow::before, .cam-x034.cam-ic-arrow-navy::before, .cam-x066.cam-ic-arrow::before,
.elementor-widget.cam-w-x032 > .elementor-button::before, .elementor-widget.cam-w-x034 > .elementor-button::before, .elementor-widget.cam-w-x066 > .elementor-button::before { width: 28px; height: 28px; background-size: 13px 13px; }
.cam-x120.cam-ic-arrow::before, .cam-x189.cam-ic-arrow::before, .elementor-widget.cam-w-x120 > .elementor-button::before, .elementor-widget.cam-w-x189 > .elementor-button::before { width: 34px; height: 34px; background-size: 15px 15px; background-color: rgba(255,255,255,.25); }
.cam-btn.cam-ic-dot::before, .elementor-widget.cam-ic-dot > .elementor-button::before { width: 20px; height: 20px; background-color: var(--cam-orange); background-size: 10px 10px; }
.cam-x045 .cam-btn.cam-ic-dot::before { background-color: rgba(255,255,255,.28); }
.cam-x032.cam-ic-phone::before, .elementor-widget.cam-w-x032.cam-ic-phone > .elementor-button::before { background-size: 13px 13px; }
/* the "Learn More →" text link */
.cam-btn.cam-ic-arrow-text::after, .elementor-widget.cam-ic-arrow-text > .elementor-button::after { content: " \2192"; }
.cam-sec .elementor-widget.cam-btn > .elementor-button { display: inline-flex; align-items: center; gap: 10px; }

/* home solutions grid: cards restructured as flex columns so every leaf is a widget */
.cam-card-flex { padding: 26px; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; }
.cam-card-flex > .cam-x048, .cam-card-flex > .cam-x049, .cam-card-flex > .cam-btn { position: relative; z-index: 2; }
.cam-card-flex > .cam-x048 { margin: 0; }
.cam-card-flex > .cam-x049 { margin: 0; max-width: 380px; }
.cam-card-flex > .cam-btn { align-self: flex-start; }
.cam-x037.cam-card-flex, .cam-x052.cam-card-flex { padding: 24px; }
.cam-x037 img, .cam-x045 img, .cam-x052 img { z-index: 0; }
.cam-x039, .cam-x047, .cam-x053 { z-index: 1; pointer-events: none; }

/* the icon tiles */
.cam-tile { flex-shrink: 0; }
.cam-tile svg { display: block; }

/* steps: the arrows between the four columns, drawn instead of inline */
.cam-steps { flex-wrap: wrap; row-gap: 32px; }
.cam-step { position: relative; }
.cam-step + .cam-step::before { content: ""; position: absolute; left: -22px; top: 24px; width: 34px; height: 14px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 14' fill='none'><path d='M1 7h30M25 1l6 6-6 6' stroke='%23D8DEE6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat; }
.cam-x072 { gap: 36px; }
.cam-step h3, .cam-step p { margin: 0; }
@media (max-width: 1023px) { .cam-step + .cam-step::before { display: none; } .cam-x072 { gap: 28px; } }
@media (max-width: 767px) { .cam-x073 { width: calc(50% - 14px); } }
@media (max-width: 479px) { .cam-x073 { width: 100%; } }

/* services band (navy, grounded) */
.cam-x081 { position: relative; }
.cam-x087 p, .cam-x094 p, .cam-x087 h3, .cam-x094 h3, .cam-x175 h3, .cam-x175 p, .cam-x256 h3, .cam-x259 h3, .cam-x256 p, .cam-x259 p, .cam-x228 h3, .cam-x228 p, .cam-x247 h3, .cam-x247 p { margin: 0; }
.cam-x094 { flex: 0 0 282px; }
@media (max-width: 767px) { .cam-x094 { flex: 1 1 100%; width: auto; } }

/* partners strip: wordmarks are spans */
.cam-x098 span, .cam-x269 span { display: inline-block; }
.cam-chip svg { display: inline-block; vertical-align: -2px; }

/* story / split band */
.cam-x146 h2, .cam-x146 p { margin: 0; }
.cam-media { position: relative; }
.cam-media::after, .cam-col-x151::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,38,52,0.55) 0%, rgba(9,38,52,0) 45%); pointer-events: none; z-index: 1; border-radius: inherit; }
.cam-chip-dark { z-index: 2; }
.cam-chip-dark svg { flex-shrink: 0; }
.cam-flip .cam-x146 > .cam-x151 { order: -1; }
@media (max-width: 1023px) { .cam-x146 { grid-template-columns: 1fr; gap: 32px; } .cam-flip .cam-x146 > .cam-x151 { order: 0; } .cam-x151 { max-width: 640px; } }

/* photo band captions are spans */
.cam-x169 span, .cam-x172 span { z-index: 2; }
.cam-x170, .cam-x173 { z-index: 1; pointer-events: none; }
@media (max-width: 767px) { .cam-x168 { grid-template-columns: 1fr; } }

/* info strip cards: tile + two lines, laid out as a grid so each line is a widget */
.cam-info { display: grid; grid-template-columns: 44px minmax(0,1fr); column-gap: 14px; row-gap: 0; align-items: center; }
.cam-info > .cam-tile { grid-row: 1 / 3; }
.cam-info > .cam-x201, .cam-info > .cam-x202 { margin: 0; }
.cam-info > a.cam-x201:hover { color: var(--cam-orange-ink); }
@media (max-width: 767px) { .cam-x198 { grid-template-columns: 1fr; } }

/* what's-included tiles: icon + title + text, same trick */
.cam-inc { display: grid; grid-template-columns: 20px minmax(0,1fr); column-gap: 14px; row-gap: 4px; align-items: start; }
.cam-inc > svg { grid-row: 1 / 3; margin-top: 2px; }

/* services grid cards: media box as an image, tile floating onto the body.
   The Image widget carrying the media box is a stretched flex item with width:auto,
   which gave aspect-ratio nothing to resolve against (height 0, measured). */
.cam-sec .cam-col > .elementor-widget-wrap > .cam-w.cam-wrap-x208 { width: 100%; flex: 0 0 auto; aspect-ratio: 16 / 10; height: auto; min-height: 0; }
.cam-sec .elementor-widget.cam-wrap-x208 > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cam-sec .elementor-widget.cam-wrap-x208::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.cam-svc-card > .cam-x208, .cam-svc-card > .cam-x221 { position: relative; }
.cam-svc-card > .cam-x208 > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cam-svc-card > .cam-x208::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.cam-ov-navy::after   { background: linear-gradient(0deg, rgba(9,38,52,0.6) 0%, rgba(9,38,52,0.05) 60%); }
.cam-ov-orange::after { background: linear-gradient(0deg, rgba(224,116,42,0.6) 0%, rgba(224,116,42,0.05) 60%); }
.cam-ov-sky::after    { background: linear-gradient(0deg, rgba(42,180,242,0.55) 0%, rgba(9,38,52,0.05) 60%); }
.cam-svc-tile { position: relative; left: auto; bottom: auto; margin: -22px 0 0 14px; z-index: 2; }
.cam-svc-card > h3, .cam-svc-card > p, .cam-svc-card > .cam-x214, .cam-svc-card > .cam-btn { margin-left: 18px; margin-right: 18px; }
.cam-svc-card > h3 { margin-top: 10px; }
.cam-svc-card > p { margin-top: 8px; margin-bottom: 0; }
.cam-svc-card > .cam-x214 { margin-top: 12px; }
.cam-svc-card > .cam-btn { margin-top: auto; padding-top: 14px; padding-bottom: 22px; }
.cam-svc-card h3 a:hover { color: var(--cam-orange-ink); }
.cam-x222, .cam-x223 { line-height: 1; }

/* paragraphs bundled into one Text Editor widget keep their spacing */
.cam-sec .elementor-widget-text-editor p + p { margin-top: 1em; }
.cam-sec .elementor-widget-text-editor ul, .cam-sec .elementor-widget-text-editor ol { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 6px; }
.cam-sec .elementor-widget-text-editor li::marker { color: var(--cam-orange); }

/* partner wordmarks are typed in title case and shown in capitals */
.cam-x099, .cam-x100, .cam-x101, .cam-x185, .cam-x186, .cam-x270, .cam-x271, .cam-x272 { text-transform: uppercase; }
.cam-sec .elementor-widget.cam-w-x099 > *, .cam-sec .elementor-widget.cam-w-x100 > *, .cam-sec .elementor-widget.cam-w-x101 > *,
.cam-sec .elementor-widget.cam-w-x185 > *, .cam-sec .elementor-widget.cam-w-x186 > *, .cam-sec .elementor-widget.cam-w-x270 > *,
.cam-sec .elementor-widget.cam-w-x271 > *, .cam-sec .elementor-widget.cam-w-x272 > * { text-transform: uppercase; }

/* why band columns */
.cam-x228 svg { display: block; }

/* hero: ghost word sizes and phone padding */
@media (max-width: 767px) {
  .cam-x014 { padding-top: 64px; padding-bottom: 96px; }
  .cam-x140, .cam-x194, .cam-x233 { padding-top: 56px; padding-bottom: 88px; }
  .cam-x016, .cam-x141, .cam-x196, .cam-x234 { font-size: 48px; top: -14px; }
  .cam-x165 { font-size: 64px; }
  .cam-x019 .cam-btn, .cam-x240 .cam-btn { width: 100%; justify-content: center; }
  .cam-x062 { flex-direction: column; align-items: flex-start; }
  .cam-x063, .cam-x231 { max-width: none; }
}

/* footer grid */
.cam-f-grid { align-items: start; }
.cam-f-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cam-f-menu a { font-size: 15.5px; color: #A9B8D6; transition: color .15s; }
.cam-f-menu a:hover, .cam-f-menu .current-menu-item > a { color: #fff; }
.cam-x133 { margin: 0; }
.cam-x131 { display: block; }
@media (max-width: 1023px) { .cam-x124 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px)  { .cam-x124 { grid-template-columns: 1fr; } .cam-x135 { flex-direction: column; align-items: flex-start; } }

/* chips row and values cards on phones */
@media (max-width: 767px) { .cam-x183 { font-size: 13.5px; padding: 8px 14px; } }

/* 3 boxes always sit in one row, 4 in one row, on desktop (standing rule) */
@media (min-width: 1024px) {
  .cam-cards:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .cam-cards:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

/* ==================== 50-elementor.css ==================== */
/* ============================================================================
   50-elementor.css — the native-widget layer.
   Elementor's frontend stylesheet sits at (0,1,1) and the kit's per-post CSS
   loads after cam.css, so everything here is at least (0,2,0).
   ========================================================================== */
.cam-el-band > .elementor-container, .cam-el-band > .e-con-inner { max-width: none; width: 100%; }
.cam-el-band > .elementor-container > .elementor-column { padding: 0; }
.cam-el-band .elementor-widget-html { line-height: normal; }
.cam-sec .elementor-widget-html { line-height: normal; }

/* headings: the kit supplies family and weight; colour comes from the mapped class,
   so Elementor's default heading colour must not win over inherited band colour */
.cam-sec .elementor-widget-heading .elementor-heading-title { color: inherit; font-family: 'Space Grotesk', sans-serif; }
.cam-sec .elementor-widget-text-editor { font-family: 'Work Sans', sans-serif; color: inherit; }
.cam-sec .elementor-widget-text-editor p { margin: 0; }

/* buttons: the mapped class rule draws the pill; the Elementor wrapper must not add
   a second box, centre it, or paint the kit colours */
.cam-sec .elementor-widget-button.cam-w { text-align: inherit; width: auto; }
.cam-sec .elementor-widget-button.cam-w .elementor-button-wrapper { display: inline-block; }
.cam-sec .elementor-widget-button.cam-w .elementor-button { box-shadow: none; text-decoration: none; }
.cam-sec .elementor-widget-button.cam-w .elementor-button-content-wrapper { display: inline; }
.cam-sec .elementor-widget-button.cam-w .elementor-button-text { display: inline; }
.cam-sec .elementor-widget-button.cam-w .elementor-button:hover { filter: brightness(1.06); }
.cam-sec .elementor-widget-button.cam-w > .elementor-button::before { vertical-align: middle; }

/* Elementor's `.elementor img{height:auto}` and the ground images */
.cam-sec .elementor-widget-image.cam-ground { line-height: 0; }

/* the [VERIFY] notice on a draft page */
.cam-verify-note { background: #FBEDEE; border-top: 4px solid #B5591A; padding: 24px var(--gut); }
.cam-verify-note p { max-width: 900px; margin: 0 auto; font-size: 16px; line-height: 1.6; color: #6B0A12; }

/* widgetized prose bands: the column carries .cam-prose, the widgets sit inside its
   widget-wrap, so the vertical rhythm goes on the wrap and on the h3 widgets */
.cam-sec .cam-col.cam-prose > .elementor-widget-wrap { gap: 18px; }
.cam-sec .cam-col.cam-prose > .elementor-widget-wrap > .elementor-widget-heading.cam-w-x176 { margin-top: 10px; }
.cam-sec .cam-col.cam-prose > .elementor-widget-wrap > .elementor-widget-text-editor ul { margin: 0; }
/* story / split copy columns: same rhythm */
.cam-sec .elementor-column.cam-col-x147 > .elementor-widget-wrap { gap: 20px; }

/* ==================== 60-elementor-map.css ==================== */
/* gen_map.py — re-point every generated mockup class at the Elementor node that
   actually carries its content, and write css/60-elementor-map.css.
   
   The structural widgetizer keeps every wrapper's class, but on an Elementor node:
     band wrapper   -> .elementor-section.C          (the class's own rules already match)
     carried wrapper-> .elementor-section.C > .elementor-container
     grid           -> .elementor-section.cam-grid.C > .elementor-container
     column wrapper -> self-sizing props on .elementor-column.C,
                       child-layout props on .elementor-column.C > .elementor-widget-wrap
     leaf           -> .cam-sec .elementor-widget.C > *   (Elementor 4.3.3 has no
                       .elementor-widget-container; the h2/p/img/a is the direct child)
   
   Generated from the same class table as everything else. Do not hand-edit.
   
   The .cam-sec prefix on widget targets is deliberate: the kit's own button rules are
   `.elementor-kit-4 .elementor-button` at (0,2,0) and load after cam.css, so a (0,2,0)
   selector here would lose the tie. (0,3,0) wins it. */

/* ---- generic structure ---------------------------------------------------- */
/* Elementor forces every widget to width:100%. In the mockup a leaf in a flex column
   is stretch by default and shrinks under align-items:center, so width:auto
   reproduces both. NO max-width:100% here: a percentage max-width on a flex item whose
   parent column is itself sizing to content is a cyclic percentage, which the browser
   resolves as min-content, and the CTA band's heading collapsed to its longest word. */
.cam-sec .cam-col > .elementor-widget-wrap > .cam-w { width: auto; margin-block-end: 0; }
/* Absolutely positioned grounds (hero photo, overlays, ghost word) resolve against
   the SECTION, which carries the band's position:relative. Elementor makes the
   container relative TWICE (`.elementor-container` and `.elementor-section
   .elementor-container`, the second at (0,2,0) and loaded after cam.css), so the
   override has to be (0,3,0) or it loses the tie and every ground is inset by the
   container padding. */
.elementor-section.cam-sec > .elementor-container { position: static; flex-wrap: nowrap; max-width: none; width: 100%; }
.cam-sec .cam-col > .elementor-widget-wrap, .cam-sec .cam-w { position: static; }
.cam-sec > .elementor-container > .cam-col > .elementor-widget-wrap { padding: 0; display: flex; flex-direction: column; align-content: normal; align-items: stretch; }
/* Copy columns are positioned so they paint ABOVE the absolute grounds (a static box
   paints under any positioned sibling regardless of DOM order). */
.cam-sec > .elementor-container > .cam-col:not(.cam-ground) { position: relative; }
/* Sibling columns behave like the mockup's flex siblings: flex:0 1 auto is the
   browser default those children had. A column with a fixed width keeps it, because
   its class rule is (0,2,0). */
.cam-sec > .elementor-container > .cam-col { width: auto; flex: 0 1 auto; min-height: 0; }
/* The ground column and its widget wrappers take no space at all: display:contents
   lifts the grounds to the container, and being absolute they add no gap. */
.cam-sec > .elementor-container > .cam-col.cam-ground,
.cam-sec > .elementor-container > .cam-col.cam-ground > .elementor-widget-wrap,
.cam-sec > .elementor-container > .cam-col.cam-ground .cam-w { display: contents; }
/* A card grid is an inner section whose columns are grid items. */
.cam-sec.cam-grid > .elementor-container > .cam-col { width: auto; flex: none; }
.cam-sec.elementor-inner-section > .elementor-container { max-width: none; }
.cam-sec .elementor-widget-image { text-align: inherit; }
/* A photo whose mockup rule says height:100% measured that against its media box,
   which is now the COLUMN. The Image widget's own div sits between them with auto
   height, so 100% collapsed to the photo's natural aspect (640x268 in a 640x520 box).
   Letting the widget grow to fill the column restores the box; a widget that carries
   its own media-box class (cam-wrap-*) has an explicit height and is left alone. */
.cam-sec .cam-col > .elementor-widget-wrap > .elementor-widget-image.cam-w:not([class*="cam-wrap-"]) { flex: 1 1 auto; min-height: 0; }
.cam-sec .cam-w > .elementor-button { display: inline-flex; line-height: normal; background: none; border: 0; border-radius: 0; padding: 0; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; }
.cam-sec .cam-w > .elementor-button .elementor-button-content-wrapper { display: inline; }
.cam-sec .elementor-widget.cam-w > * { box-sizing: border-box; }
/* 10-bridge gives every Text Editor paragraph a 1.15em bottom margin for prose. In a
   mockup band the paragraphs are spaced by the wrapper's flex gap, so that margin
   inflated every band (the hero eyebrow pushed the H1 down 10px). */
.cam-sec .cam-w > p { margin: 0; }
.cam-sec .cam-w > h1, .cam-sec .cam-w > h2, .cam-sec .cam-w > h3, .cam-sec .cam-w > h4 { line-height: normal; margin: 0; }

/* ---- per-class re-targeting -------------------------------------------- */
.cam-sec > .elementor-container > .elementor-column.cam-col-x015 { position: relative; max-width: 780px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x015 > .elementor-widget-wrap { display: flex; flex-direction: column; align-items: center; text-align: center; }
.cam-sec .elementor-widget.cam-w-x017 > * { position: relative; margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 56px; line-height: 1.1; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x018 > * { position: relative; margin: 18px 0 0; max-width: 600px; font-size: 19.5px; line-height: 1.7; color: #C7D2E6; }
.elementor-section.cam-sec.cam-carry-x019 > .elementor-container, .elementor-section.cam-sec.cam-grid-x019 > .elementor-container { display: flex; align-items: center; gap: 16px; margin-top: 30px; flex-wrap: wrap; justify-content: center; }
.cam-sec .elementor-widget.cam-w-x020 > * { display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 5px 24px 5px 5px; border-radius: 999px; font-size: 16px; font-weight: 700; transition: filter .15s; }
.cam-sec .elementor-widget.cam-w-x022 > * { display: inline-flex; align-items: center; gap: 10px; background: #FFFFFF; color: #092634; padding: 5px 24px 5px 5px; border-radius: 999px; font-size: 16px; font-weight: 700; transition: filter .15s; }
.elementor-section.cam-sec.cam-carry-x027 > .elementor-container, .elementor-section.cam-sec.cam-grid-x027 > .elementor-container { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 44px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x028 { max-width: 640px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x028 > .elementor-widget-wrap { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.cam-sec .elementor-widget.cam-w-x029 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 35px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x030 > * { margin: 0; font-size: 18px; line-height: 1.75; color: #3D4A61; }
.elementor-section.cam-sec.cam-carry-x031 > .elementor-container, .elementor-section.cam-sec.cam-grid-x031 > .elementor-container { display: flex; align-items: center; gap: 14px; margin-top: 6px; }
.cam-sec .elementor-widget.cam-w-x032 > * { display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 5px 22px 5px 5px; border-radius: 999px; font-size: 15.5px; font-weight: 700; }
.cam-sec .elementor-widget.cam-w-x034 > * { display: inline-flex; align-items: center; gap: 10px; background: transparent; border: 1.5px solid #D8DEE6; color: #092634; padding: 5px 22px 5px 5px; border-radius: 999px; font-size: 15.5px; font-weight: 700; }
.elementor-section.cam-sec.cam-carry-x036 > .elementor-container, .elementor-section.cam-sec.cam-grid-x036 > .elementor-container { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); grid-auto-rows: 210px; gap: 20px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x037 { grid-column: span 7; position: relative; border-radius: 18px; overflow: hidden; }
.cam-sec .elementor-widget.cam-w-x038 > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x045 { grid-column: span 5; position: relative; border-radius: 18px; overflow: hidden; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x045 > .elementor-widget-wrap { padding: 26px; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; }
.cam-sec .elementor-widget.cam-w-x046 > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cam-sec .elementor-widget.cam-w-x048 > * { position: relative; font-family: 'Space Grotesk', sans-serif; font-size: 21px; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x049 > * { position: relative; font-size: 16.5px; line-height: 1.6; color: rgba(255,255,255,0.9); }
.cam-sec .elementor-widget.cam-w-x050 > * { position: relative; margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 700; color: #FFFFFF; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x052 { grid-column: span 5; position: relative; border-radius: 18px; overflow: hidden; }
.cam-sec .elementor-widget.cam-w-x055 > * { font-family: 'Space Grotesk', sans-serif; font-size: 19px; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x059 > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 70%; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x062 { max-width: 1100px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x062 > .elementor-widget-wrap { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; flex-direction: row; }
.cam-sec .elementor-widget.cam-w-x063 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 31px; line-height: 1.25; font-weight: 700; color: #FFFFFF; max-width: 340px; }
.elementor-section.cam-sec.cam-carry-x064 > .elementor-container, .elementor-section.cam-sec.cam-grid-x064 > .elementor-container { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.cam-sec .elementor-widget.cam-w-x065 > * { margin: 0; max-width: 320px; font-size: 17px; line-height: 1.7; color: rgba(255,255,255,0.85); }
.cam-sec .elementor-widget.cam-w-x066 > * { display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 5px 22px 5px 5px; border-radius: 999px; font-size: 15.5px; font-weight: 700; flex-shrink: 0; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x068 { max-width: 1160px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x068 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 56px; }
.elementor-section.cam-sec.cam-carry-x069 > .elementor-container, .elementor-section.cam-sec.cam-grid-x069 > .elementor-container { max-width: 560px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 14px; }
.cam-sec .elementor-widget.cam-w-x070 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 33px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x071 > * { margin: 0; font-size: 17.5px; line-height: 1.7; color: #3D4A61; }
.elementor-section.cam-sec.cam-carry-x072 > .elementor-container, .elementor-section.cam-sec.cam-grid-x072 > .elementor-container { display: flex; align-items: flex-start; justify-content: center; gap: 6px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x073 { width: 190px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x073 > .elementor-widget-wrap { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cam-sec .elementor-widget.cam-w-x075 > * { font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #092634; text-align: center; }
.cam-sec .elementor-widget.cam-w-x076 > * { font-size: 16px; line-height: 1.6; color: #3D4A61; text-align: center; }
.cam-sec .elementor-widget.cam-w-x077 > * { font-size: 14px; font-weight: 700; color: #3D4A61; transition: color .15s; }
.elementor-section.cam-sec.cam-carry-x081 > .elementor-container, .elementor-section.cam-sec.cam-grid-x081 > .elementor-container { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 56px; }
.elementor-section.cam-sec.cam-carry-x082 > .elementor-container, .elementor-section.cam-sec.cam-grid-x082 > .elementor-container { max-width: 620px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 14px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x082 { max-width: 620px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x082 > .elementor-widget-wrap { text-align: center; display: flex; flex-direction: column; gap: 14px; }
.cam-sec .elementor-widget.cam-w-x083 > * { font-size: 15px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #2AB4F2; }
.cam-sec .elementor-widget.cam-w-x084 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 35px; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x085 > * { margin: 0; font-size: 18px; line-height: 1.7; color: #C7D2E6; }
.elementor-section.cam-sec.cam-carry-x086 > .elementor-container, .elementor-section.cam-sec.cam-grid-x086 > .elementor-container { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x087 { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: 16px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x087 > .elementor-widget-wrap { padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s; }
.cam-sec .elementor-widget.cam-w-x089 > * { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x090 > * { font-size: 17px; line-height: 1.6; color: #C7D2E6; flex-grow: 1; }
.cam-sec .elementor-widget.cam-w-x091 > * { font-size: 15px; font-weight: 700; color: #2AB4F2; }
.elementor-section.cam-sec.cam-carry-x093 > .elementor-container, .elementor-section.cam-sec.cam-grid-x093 > .elementor-container { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x094 { width: 282px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: 16px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x094 > .elementor-widget-wrap { padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x096 { max-width: 1100px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x096 > .elementor-widget-wrap { display: flex; flex-direction: column; align-items: center; gap: 28px; }
.cam-sec .elementor-widget.cam-w-x097 > * { font-size: 14.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #64748F; }
.elementor-section.cam-sec.cam-carry-x098 > .elementor-container, .elementor-section.cam-sec.cam-grid-x098 > .elementor-container { display: flex; align-items: center; justify-content: center; gap: 48px; flex-wrap: wrap; }
.cam-sec .elementor-widget.cam-w-x099 > * { font-family: 'Space Grotesk', sans-serif; font-size: 22px; font-weight: 700; color: #33415A; letter-spacing: 0.02em; }
.cam-sec .elementor-widget.cam-w-x100 > * { font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #33415A; letter-spacing: 0.04em; }
.cam-sec .elementor-widget.cam-w-x101 > * { font-family: 'Space Grotesk', sans-serif; font-size: 20px; font-weight: 700; color: #33415A; letter-spacing: 0.02em; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x116 { max-width: 700px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x116 > .elementor-widget-wrap { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 26px; }
.cam-sec .elementor-widget.cam-w-x117 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 37px; line-height: 1.2; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x119 > * { margin: 0; max-width: 480px; font-size: 17px; color: #3D4A61; }
.cam-sec .elementor-widget.cam-w-x120 > * { display: inline-flex; align-items: center; gap: 10px; background: #E0742A; color: #FFFFFF; padding: 6px 26px 6px 6px; border-radius: 999px; font-size: 16.5px; font-weight: 700; }
.cam-sec .elementor-widget.cam-w-x142 > * { position: relative; display: flex; align-items: center; gap: 8px; padding: 6px 16px; border-radius: 999px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18); font-size: 13.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #2AB4F2; }
.cam-sec .elementor-widget.cam-w-x143 > * { position: relative; margin: 18px 0 0; font-family: 'Space Grotesk', sans-serif; font-size: 46px; line-height: 1.15; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x144 > * { position: relative; margin: 18px 0 0; max-width: 600px; font-size: 18px; line-height: 1.7; color: #C7D2E6; }
.elementor-section.cam-sec.cam-carry-x146 > .elementor-container, .elementor-section.cam-sec.cam-grid-x146 > .elementor-container { max-width: 1160px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: center; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x147 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 20px; }
.cam-sec .elementor-widget.cam-w-x148 > * { font-size: 14.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #E0742A; }
.cam-sec .elementor-widget.cam-w-x149 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 35px; line-height: 1.2; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x150 > * { margin: 0; font-size: 16.5px; line-height: 1.75; color: #3D4A61; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x151 { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3.4; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x157 { max-width: 1160px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x157 > .elementor-widget-wrap { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 32px; }
.elementor-section.cam-sec.cam-carry-x158 > .elementor-container, .elementor-section.cam-sec.cam-grid-x158 > .elementor-container { display: flex; flex-direction: column; gap: 6px; text-align: center; }
.cam-sec .elementor-widget.cam-w-x159 > * { font-family: 'Space Grotesk', sans-serif; font-size: 40px; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x160 > * { font-size: 14.5px; line-height: 1.5; color: #A9B8D6; }
.elementor-section.cam-sec.cam-carry-x161 > .elementor-container, .elementor-section.cam-sec.cam-grid-x161 > .elementor-container { display: flex; flex-direction: column; gap: 6px; text-align: center; border-left: 1px solid rgba(255,255,255,0.12); border-right: 1px solid rgba(255,255,255,0.12); }
.elementor-section.cam-sec.cam-carry-x162 > .elementor-container, .elementor-section.cam-sec.cam-grid-x162 > .elementor-container { display: flex; flex-direction: column; gap: 6px; text-align: center; border-right: 1px solid rgba(255,255,255,0.12); }
.cam-sec > .elementor-container > .elementor-column.cam-col-x166 { position: relative; max-width: 1160px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x166 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 44px; }
.elementor-section.cam-sec.cam-carry-x167 > .elementor-container, .elementor-section.cam-sec.cam-grid-x167 > .elementor-container { max-width: 620px; display: flex; flex-direction: column; gap: 14px; }
.elementor-section.cam-sec.cam-carry-x168 > .elementor-container, .elementor-section.cam-sec.cam-grid-x168 > .elementor-container { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: stretch; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x169 { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 10; }
.cam-sec .elementor-widget.cam-w-x171 > * { position: absolute; left: 22px; bottom: 20px; right: 22px; font-size: 15px; font-weight: 600; color: #FFFFFF; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x172 { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3.6; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x175 { background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 16px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x175 > .elementor-widget-wrap { padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s; }
.cam-sec .elementor-widget.cam-w-x176 > * { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x177 > * { font-size: 15.5px; line-height: 1.6; color: #3D4A61; flex-grow: 1; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x179 { max-width: 1000px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x179 > .elementor-widget-wrap { display: flex; flex-direction: column; align-items: center; gap: 28px; text-align: center; }
.cam-sec .elementor-widget.cam-w-x180 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x181 > * { margin: 0; max-width: 560px; font-size: 16.5px; line-height: 1.7; color: #3D4A61; }
.elementor-section.cam-sec.cam-carry-x182 > .elementor-container, .elementor-section.cam-sec.cam-grid-x182 > .elementor-container { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.cam-sec .elementor-widget.cam-w-x183 > * { padding: 10px 20px; border-radius: 999px; background: #F9F9F9; border: 1px solid #E4E8F0; font-size: 14.5px; font-weight: 600; color: #092634; transition: background .15s; }
.cam-sec .elementor-widget.cam-w-x185 > * { font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 700; color: #33415A; letter-spacing: 0.04em; }
.cam-sec .elementor-widget.cam-w-x186 > * { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #33415A; letter-spacing: 0.02em; }
.cam-sec .elementor-widget.cam-w-x188 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 34px; line-height: 1.2; font-weight: 700; color: #092634; }
.elementor-section.cam-sec.cam-carry-x198 > .elementor-container, .elementor-section.cam-sec.cam-grid-x198 > .elementor-container { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x199 { background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 14px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x199 > .elementor-widget-wrap { display: flex; align-items: center; gap: 14px; padding: 20px 22px; flex-direction: row; }
.cam-sec .elementor-widget.cam-w-x201 > * { font-family: 'Space Grotesk', sans-serif; font-size: 20px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x202 > * { font-size: 13.5px; color: #3D4A61; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x205 { max-width: 1160px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x205 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 40px; }
.cam-sec .elementor-widget.cam-w-x206 > * { margin: 0; text-align: center; font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; color: #092634; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x207 { background: #FFFFFF; border: 1px solid #E4E8F0; border-radius: 18px; overflow: hidden; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x207 > .elementor-widget-wrap { display: flex; flex-direction: column; transition: transform .18s, box-shadow .18s; }
.cam-sec .elementor-widget.cam-wrap-x208 { position: relative; width: 100%; aspect-ratio: 16/10; overflow: hidden; }
.cam-sec .elementor-widget.cam-w-x212 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x213 > * { margin: 0; font-size: 13.5px; line-height: 1.6; color: #3D4A61; flex-grow: 1; }
.elementor-section.cam-sec.cam-carry-x214 > .elementor-container, .elementor-section.cam-sec.cam-grid-x214 > .elementor-container { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.cam-sec .elementor-widget.cam-w-x215 > * { padding: 5px 10px; border-radius: 999px; background: #F9F9F9; border: 1px solid #E4E8F0; font-size: 11.5px; font-weight: 600; color: #092634; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x225 { max-width: 1100px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x225 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 44px; }
.cam-sec .elementor-widget.cam-w-x226 > * { margin: 0; text-align: center; font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; color: #FFFFFF; }
.elementor-section.cam-sec.cam-carry-x227 > .elementor-container, .elementor-section.cam-sec.cam-grid-x227 > .elementor-container { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x228 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 12px; text-align: center; align-items: center; }
.cam-sec .elementor-widget.cam-w-x229 > * { font-family: 'Space Grotesk', sans-serif; font-size: 17px; font-weight: 700; color: #FFFFFF; }
.cam-sec .elementor-widget.cam-w-x230 > * { font-size: 14px; line-height: 1.6; color: #C7D2E6; }
.cam-sec .elementor-widget.cam-w-x231 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 28px; line-height: 1.25; font-weight: 700; color: #FFFFFF; max-width: 380px; }
.cam-sec .elementor-widget.cam-w-x232 > * { margin: 0; max-width: 320px; font-size: 15.5px; line-height: 1.7; color: #C7D2E6; }
.elementor-section.cam-sec.cam-carry-x240 > .elementor-container, .elementor-section.cam-sec.cam-grid-x240 > .elementor-container { display: flex; align-items: center; gap: 14px; margin-top: 28px; flex-wrap: wrap; justify-content: center; }
.cam-sec .elementor-widget.cam-w-x241 > * { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.24); color: #FFFFFF; padding: 11px 22px; border-radius: 999px; font-size: 15.5px; font-weight: 700; }
.elementor-section.cam-sec.cam-carry-x244 > .elementor-container, .elementor-section.cam-sec.cam-grid-x244 > .elementor-container { max-width: 640px; display: flex; flex-direction: column; gap: 14px; }
.cam-sec .elementor-widget.cam-w-x245 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 32px; line-height: 1.2; font-weight: 700; color: #092634; }
.elementor-section.cam-sec.cam-carry-x246 > .elementor-container, .elementor-section.cam-sec.cam-grid-x246 > .elementor-container { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x247 { background: #F9F9F9; border: 1px solid #E4E8F0; border-radius: 14px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x247 > .elementor-widget-wrap { display: flex; align-items: flex-start; gap: 14px; padding: 20px; flex-direction: row; }
.cam-sec .elementor-widget.cam-w-x249 > * { font-family: 'Space Grotesk', sans-serif; font-size: 15.5px; font-weight: 700; color: #092634; }
.cam-sec .elementor-widget.cam-w-x250 > * { font-size: 13.5px; line-height: 1.55; color: #3D4A61; margin-top: 4px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x252 { max-width: 1160px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x252 > .elementor-widget-wrap { display: flex; flex-direction: column; gap: 44px; }
.cam-sec .elementor-widget.cam-w-x253 > * { font-size: 14.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #2AB4F2; }
.cam-sec .elementor-widget.cam-w-x254 > * { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 32px; font-weight: 700; color: #FFFFFF; }
.elementor-section.cam-sec.cam-carry-x255 > .elementor-container, .elementor-section.cam-sec.cam-grid-x255 > .elementor-container { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x256 { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.14); border-radius: 18px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x256 > .elementor-widget-wrap { padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s; }
.cam-sec .elementor-widget.cam-w-x258 > * { font-size: 14.5px; line-height: 1.65; color: #C7D2E6; flex-grow: 1; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x259 { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.2); border-radius: 18px; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x259 > .elementor-widget-wrap { padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; transition: transform .18s, box-shadow .18s; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x267 { max-width: 1100px; margin: 0 auto; }
.cam-sec > .elementor-container > .elementor-column.cam-col-x267 > .elementor-widget-wrap { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.cam-sec .elementor-widget.cam-w-x268 > * { font-size: 13.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #64748F; }
.elementor-section.cam-sec.cam-carry-x269 > .elementor-container, .elementor-section.cam-sec.cam-grid-x269 > .elementor-container { display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; }
.cam-sec .elementor-widget.cam-w-x270 > * { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; color: #33415A; }
.cam-sec .elementor-widget.cam-w-x271 > * { font-family: 'Space Grotesk', sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0.04em; color: #33415A; }
.cam-sec .elementor-widget.cam-w-x272 > * { font-family: 'Space Grotesk', sans-serif; font-size: 16px; font-weight: 700; color: #33415A; }

/* ---- responsive mirror ------------------------------------------------- */
/* 05-responsive.css overrides these classes on the element that carries them.
   On an Elementor node the content is one level down, so the same overrides are
   repeated here for the re-targeted nodes. Same breakpoints, same values. */
@media (max-width: 1023px){
  .elementor-section.cam-sec.cam-carry-x086 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x086 > .elementor-container,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x157,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x157 > .elementor-widget-wrap,
  .elementor-section.cam-sec.cam-carry-x198 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x198 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x227 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x227 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x246 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x246 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x255 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x255 > .elementor-container{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .elementor-section.cam-sec.cam-carry-x036 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x036 > .elementor-container{ grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 230px; }
  .cam-sec > .elementor-container > .elementor-column.cam-col-x037,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x037 > .elementor-widget-wrap,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x045,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x045 > .elementor-widget-wrap,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x052,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x052 > .elementor-widget-wrap{ grid-column: auto; }
}
@media (max-width: 767px){
  .elementor-section.cam-sec.cam-carry-x198 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x198 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x227 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x227 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x246 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x246 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x255 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x255 > .elementor-container{ grid-template-columns: repeat(1, minmax(0,1fr)); }
  .elementor-section.cam-sec.cam-carry-x086 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x086 > .elementor-container,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x157,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x157 > .elementor-widget-wrap{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .elementor-section.cam-sec.cam-carry-x036 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x036 > .elementor-container{ grid-template-columns: minmax(0,1fr); grid-auto-rows: 240px; }
}
.cam-sec .elementor-widget.cam-w-x017 > * { font-size: clamp(34px, 3.89vw, 56px); }
.cam-sec .elementor-widget.cam-w-x143 > * { font-size: clamp(28px, 3.19vw, 46px); }
.cam-sec .elementor-widget.cam-w-x159 > * { font-size: clamp(24px, 2.78vw, 40px); }
.cam-sec .elementor-widget.cam-w-x117 > * { font-size: clamp(22px, 2.57vw, 37px); }
.cam-sec .elementor-widget.cam-w-x029 > * { font-size: clamp(22px, 2.43vw, 35px); }
.cam-sec .elementor-widget.cam-w-x084 > * { font-size: clamp(22px, 2.43vw, 35px); }
.cam-sec .elementor-widget.cam-w-x149 > * { font-size: clamp(22px, 2.43vw, 35px); }
.cam-sec .elementor-widget.cam-w-x188 > * { font-size: clamp(22px, 2.36vw, 34px); }

/* ==================== 65-elementor-widgets.css ==================== */
/* ============================================================================
   65-elementor-widgets.css — native Testimonial and Accordion widgets, in the
   mockup's own language, so the switch from hand-built markup is invisible.
   ========================================================================== */
/* testimonial grid: the inner section is a block; its container is the grid */
.cam-sec.cam-review-grid { display: block; }
.cam-sec.cam-review-grid > .elementor-container { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.cam-sec.cam-review-grid:has(> .elementor-container > .cam-col:nth-child(2):last-child) > .elementor-container { grid-template-columns: repeat(2, minmax(0,1fr)); }
.cam-sec.cam-review-grid:has(> .elementor-container > .cam-col:nth-child(1):last-child) > .elementor-container { grid-template-columns: minmax(0, 720px); }
.cam-sec.cam-review-grid > .elementor-container > .cam-col { width: auto; }
.cam-sec .cam-col.cam-review-col > .elementor-widget-wrap { height: 100%; }
.cam-review-grid:not(.cam-sec) { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
@media (max-width: 1023px) { .cam-sec.cam-review-grid > .elementor-container, .cam-review-grid:not(.cam-sec) { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px)  { .cam-sec.cam-review-grid > .elementor-container, .cam-review-grid:not(.cam-sec) { grid-template-columns: 1fr; } }

/* the card, both bands */
.cam-sec .cam-review .elementor-testimonial-wrapper, figure.cam-review { display: flex; flex-direction: column; gap: 16px; height: 100%; text-align: left; margin: 0; padding: 30px 26px; background: #fff; border: 1px solid #E4E8F0; border-radius: 16px; }
.cam-band-reviews-light .cam-review .elementor-testimonial-wrapper, .cam-band-reviews-light figure.cam-review { background: #F9F9F9; border-radius: 18px; padding: 28px 24px; gap: 18px; }
.cam-sec .cam-review .elementor-testimonial-content, figure.cam-review blockquote { font-family: 'Work Sans', sans-serif; font-size: 17px; line-height: 1.65; color: #33415A; margin: 0; flex-grow: 1; }
.cam-band-reviews-light .cam-review .elementor-testimonial-content, .cam-band-reviews-light figure.cam-review blockquote { font-size: 15px; color: #3D4A61; }
.cam-sec .cam-review .elementor-testimonial-content::before, figure.cam-review blockquote::before { content: ""; display: block; width: 26px; height: 20px; margin-bottom: 14px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24' fill='%23E0742A'><path d='M0 24V13.7C0 6 4.9 1 12.3 0l1.5 4C9.2 5.4 6.6 8 6.4 12h6v12H0zm18 0V13.7C18 6 22.9 1 30.3 0l1.5 4C27.2 5.4 24.6 8 24.4 12h6v12H18z'/></svg>") no-repeat; }
.cam-sec .cam-review .elementor-testimonial-meta, figure.cam-review figcaption { margin-top: auto; }
.cam-sec .cam-review .elementor-testimonial-meta-inner { display: flex; flex-direction: column; gap: 2px; text-align: left; }
.cam-sec .cam-review .elementor-testimonial-wrapper .elementor-testimonial-meta .elementor-testimonial-image { display: none; }
.cam-sec .cam-review .elementor-testimonial-wrapper .elementor-testimonial-meta .elementor-testimonial-details { display: block; text-align: left; }
.cam-sec .cam-review .elementor-testimonial-name, figure.cam-review figcaption { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15.5px; color: #092634; line-height: 1.3; display: flex; flex-direction: column; gap: 2px; }
.cam-sec .cam-review .elementor-testimonial-job, figure.cam-review figcaption span { font-family: 'Work Sans', sans-serif; font-weight: 400; font-size: 14px; color: #64748F; line-height: 1.3; }

/* accordion (the FAQ band widgetized) */
.cam-sec .cam-faq-acc { max-width: 900px; width: 100%; }
.cam-sec .cam-faq-acc .elementor-accordion { border: 0; display: flex; flex-direction: column; gap: 12px; }
.cam-sec .cam-faq-acc .elementor-accordion-item { border: 1px solid #E4E8F0; border-radius: 14px; background: #fff; padding: 0 22px; }
.cam-band-faq.cam-x145 .cam-faq-acc .elementor-accordion-item { background: #F9F9F9; }
.cam-sec .cam-faq-acc .elementor-tab-title { padding: 18px 44px 18px 0; position: relative; cursor: pointer; font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 700; line-height: 1.3; color: #092634; border: 0; background: none; }
.cam-sec .cam-faq-acc .elementor-tab-title:hover, .cam-sec .cam-faq-acc .elementor-tab-title.elementor-active { color: #B5591A; }
.cam-sec .cam-faq-acc .elementor-tab-title h3, .cam-sec .cam-faq-acc .elementor-tab-title a { font: inherit; color: inherit; margin: 0; text-decoration: none; }
.cam-sec .cam-faq-acc .elementor-accordion-icon { display: none; }
.cam-sec .cam-faq-acc .elementor-tab-title::after { content: ""; position: absolute; right: 2px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: #E0742A linear-gradient(#fff,#fff) center/12px 2px no-repeat; }
.cam-sec .cam-faq-acc .elementor-tab-title::before { content: ""; position: absolute; right: 2px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: linear-gradient(#fff,#fff) center/2px 12px no-repeat; z-index: 1; transition: transform .18s, opacity .18s; }
.cam-sec .cam-faq-acc .elementor-tab-title.elementor-active::before { transform: rotate(90deg); opacity: 0; }
.cam-sec .cam-faq-acc .elementor-tab-content { padding: 0 44px 20px 0; border: 0; font-family: 'Work Sans', sans-serif; font-size: 16px; line-height: 1.7; color: #3D4A61; }
.cam-sec .cam-faq-acc .elementor-tab-content p { margin: 0 0 .8em; }
.cam-sec .cam-faq-acc .elementor-tab-content p:last-child { margin-bottom: 0; }

/* reviews and FAQ bands: head and grid are direct children (no centering wrapper), so
   the measure and the vertical gap come from here, raw and widgetized */
.cam-band-reviews > *, .cam-band-faq > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
.cam-band-faq > * { max-width: 1160px; }
.cam-band-reviews > .cam-x069 { margin-bottom: 56px; }
.cam-band-faq > .cam-x244 { margin-bottom: 40px; }
.elementor-section.cam-sec.cam-band-reviews > .elementor-container > .cam-col > .elementor-widget-wrap { max-width: 1200px; margin: 0 auto; width: 100%; gap: 56px; }
.elementor-section.cam-sec.cam-band-faq > .elementor-container > .cam-col > .elementor-widget-wrap { max-width: 1160px; margin: 0 auto; width: 100%; gap: 40px; }
.cam-sec.cam-band-reviews .cam-col-x069 { max-width: 560px; margin: 0 auto; }

/* The reviews/FAQ branches put the head's widgets straight into the single column
   (the head wrapper's own class is dropped), and a cam-sec column sizes to content.
   Make that column full width and centre the head widgets the way x069 did. */
.elementor-section.cam-sec.cam-band-reviews > .elementor-container > .cam-col,
.elementor-section.cam-sec.cam-band-faq > .elementor-container > .cam-col { width: 100%; flex: 1 1 100%; }
.elementor-section.cam-sec.cam-band-reviews > .elementor-container > .cam-col > .elementor-widget-wrap { gap: 14px; }
.cam-sec.cam-band-reviews .elementor-widget.cam-w-x083 > *, .cam-sec.cam-band-reviews .elementor-widget.cam-w-x084 > *,
.cam-sec.cam-band-reviews .elementor-widget.cam-w-x206 > * { text-align: center; }
.cam-sec.cam-band-reviews .elementor-widget.cam-w-x083, .cam-sec.cam-band-reviews .elementor-widget.cam-w-x084,
.cam-sec.cam-band-reviews .elementor-widget.cam-w-x206 { align-self: center; max-width: 560px; width: 100%; }
.cam-sec.cam-band-reviews > .elementor-container > .cam-col > .elementor-widget-wrap > .cam-review-grid { margin-top: 42px; }
.elementor-section.cam-sec.cam-band-faq > .elementor-container > .cam-col > .elementor-widget-wrap { gap: 14px; }
.cam-sec.cam-band-faq .elementor-widget.cam-w-x245, .cam-sec.cam-band-faq .elementor-widget.cam-w-x150 { max-width: 640px; }
.cam-sec.cam-band-faq > .elementor-container > .cam-col > .elementor-widget-wrap > .cam-faq-acc { margin-top: 26px; }

/* ==================== 67-fixes-map.css ==================== */
/* ---- 67-fixes-map: Elementor-node equivalents of the bare-class rules in 45-fixes.css ----
   A mockup class that landed on an Elementor node is prefixed there (cam-col-x073, cam-w-x099,
   cam-grid-x072 / cam-carry-x146), so the bare selectors in 45-fixes.css never match those nodes.
   Every rule below re-targets one of them with enough specificity to beat 60-elementor-map.css. */

/* any top-level column may shrink to the band; never widen the page */
.cam-sec > .elementor-container > .cam-col { max-width: 100%; }

/* steps row: four 190px columns wrap instead of forcing an 800px row */
.elementor-section.cam-sec.cam-grid-x072 > .elementor-container,
.elementor-section.cam-sec.cam-carry-x072 > .elementor-container { flex-wrap: wrap; gap: 36px; row-gap: 32px; }
@media (max-width: 1023px) {
  .elementor-section.cam-sec.cam-grid-x072 > .elementor-container,
  .elementor-section.cam-sec.cam-carry-x072 > .elementor-container { gap: 28px; row-gap: 32px; }
}
@media (max-width: 767px) {
  .cam-sec.cam-grid > .elementor-container > .elementor-column.cam-col-x073 { width: calc(50% - 14px); }
}
@media (max-width: 479px) {
  .cam-sec.cam-grid > .elementor-container > .elementor-column.cam-col-x073 { width: 100%; }
}

/* story / split band: one column on tablets and phones */
.elementor-section.cam-sec.cam-carry-x146 h2, .elementor-section.cam-sec.cam-carry-x146 p,
.elementor-section.cam-sec.cam-grid-x146 h2, .elementor-section.cam-sec.cam-grid-x146 p { margin: 0; }
.cam-flip .elementor-section.cam-sec.cam-carry-x146 > .elementor-container > .elementor-column.cam-col-x151,
.cam-flip .elementor-section.cam-sec.cam-grid-x146 > .elementor-container > .elementor-column.cam-col-x151 { order: -1; }
@media (max-width: 1023px) {
  .elementor-section.cam-sec.cam-carry-x146 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x146 > .elementor-container { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .cam-flip .elementor-section.cam-sec.cam-carry-x146 > .elementor-container > .elementor-column.cam-col-x151,
  .cam-flip .elementor-section.cam-sec.cam-grid-x146 > .elementor-container > .elementor-column.cam-col-x151 { order: 0; }
  .cam-sec > .elementor-container > .elementor-column.cam-col-x151 { max-width: 640px; width: 100%; }
}

/* photo band grid: stack on phones */
@media (max-width: 767px) {
  .elementor-section.cam-sec.cam-carry-x168 > .elementor-container,
  .elementor-section.cam-sec.cam-grid-x168 > .elementor-container { grid-template-columns: minmax(0,1fr); }
}

/* tier cards: fixed 282px on desktop, full width on phones */
@media (max-width: 767px) {
  .cam-sec.cam-grid > .elementor-container > .elementor-column.cam-col-x094,
  .cam-sec > .elementor-container > .elementor-column.cam-col-x094 { flex: 1 1 100%; width: auto; }
}

/* partner wordmarks: typed in title case, shown upper case */
.cam-sec .elementor-widget.cam-w-x099 > *, .cam-sec .elementor-widget.cam-w-x100 > *, .cam-sec .elementor-widget.cam-w-x101 > *,
.cam-sec .elementor-widget.cam-w-x185 > *, .cam-sec .elementor-widget.cam-w-x186 > *,
.cam-sec .elementor-widget.cam-w-x270 > *, .cam-sec .elementor-widget.cam-w-x271 > *, .cam-sec .elementor-widget.cam-w-x272 > * { text-transform: uppercase; }

/* info strip lines */
.cam-info .elementor-widget.cam-w-x201 > *, .cam-info .elementor-widget.cam-w-x202 > * { margin: 0; }
.cam-info .elementor-widget.cam-w-x201 > a:hover { color: var(--cam-orange-ink); }

/* why band tiles */
.cam-sec > .elementor-container > .elementor-column.cam-col-x228 svg { display: block; }

/* phones: CTA rows go full width, help banner stacks, chips shrink */
@media (max-width: 767px) {
  .elementor-section.cam-sec.cam-carry-x019 > .elementor-container > .cam-col,
  .elementor-section.cam-sec.cam-grid-x019 > .elementor-container > .cam-col,
  .elementor-section.cam-sec.cam-carry-x240 > .elementor-container > .cam-col,
  .elementor-section.cam-sec.cam-grid-x240 > .elementor-container > .cam-col { width: 100%; flex: 1 1 100%; }
  .elementor-section.cam-sec.cam-carry-x019 .elementor-widget.cam-btn > .elementor-button,
  .elementor-section.cam-sec.cam-grid-x019 .elementor-widget.cam-btn > .elementor-button,
  .elementor-section.cam-sec.cam-carry-x240 .elementor-widget.cam-btn > .elementor-button,
  .elementor-section.cam-sec.cam-grid-x240 .elementor-widget.cam-btn > .elementor-button { width: 100%; justify-content: center; }
  .cam-sec > .elementor-container > .elementor-column.cam-col-x062 > .elementor-widget-wrap { flex-direction: column; align-items: flex-start; }
  .cam-sec .elementor-widget.cam-w-x063 > *, .cam-sec .elementor-widget.cam-w-x231 > * { max-width: none; }
  .cam-sec .elementor-widget.cam-w-x183 > * { font-size: 13.5px; padding: 8px 14px; }
}

/* hero photo cards: the scrim is an absolute z-index:1 HTML widget, so the heading, copy and
   button widgets after it must be lifted or they render under the gradient */
.cam-sec > .elementor-container > .elementor-column.cam-card-flex > .elementor-widget-wrap > .elementor-widget.cam-w-x048,
.cam-sec > .elementor-container > .elementor-column.cam-card-flex > .elementor-widget-wrap > .elementor-widget.cam-w-x049,
.cam-sec > .elementor-container > .elementor-column.cam-card-flex > .elementor-widget-wrap > .elementor-widget.cam-btn { position: relative; z-index: 2; margin: 0; }
.cam-sec > .elementor-container > .elementor-column.cam-card-flex > .elementor-widget-wrap > .elementor-widget.cam-w-x049 > * { max-width: 380px; }
.cam-sec > .elementor-container > .elementor-column.cam-card-flex > .elementor-widget-wrap > .elementor-widget-image img { z-index: 0; }
