.elementor-kit-8{--e-global-color-primary:#e85d2a;--e-global-color-secondary:#0b1220;--e-global-color-text:#c9d1e4;--e-global-color-accent:#ff6a33;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:600;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* 303-global.css — single source of truth. Load ONCE site-wide:
   Elementor → Site Settings → Custom CSS. Form theme must be "Gravity Forms 2.5".
   Re-skinned from the Impressions reusable base (imp-global.css) (teal→orange #e85d2a, navy→ink #0b1220). */

/* =====================================================================
   GLOBAL STYLESHEET (source of truth) — reusable starting point.
   Load ONCE, site-wide: Elementor → Site Settings → Custom CSS.
   303 Sign Company re-skin: black + orange. Archivo/Inter unchanged (already on-brand).
   Sections: blog/post-content · single-post hero · header/hamburger ·
   standalone-title caps · upload-card · legal width · GRAVITY FORMS
   (compact, placeholder-label, styled select) · product 2-col form layout.
   ===================================================================== */

/* ---- Blog post BODY (Post Content widget) ---- */
.imp-post-content,
.elementor-widget-theme-post-content .elementor-widget-container{
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#26333A;}
.imp-post-content h1,.imp-post-content h2,.imp-post-content h3,.imp-post-content h4,.imp-post-content h5,
.elementor-widget-theme-post-content h1,.elementor-widget-theme-post-content h2,
.elementor-widget-theme-post-content h3,.elementor-widget-theme-post-content h4{
  font-family:Archivo,sans-serif;color:#0b1220;font-weight:800;line-height:1.2;margin:1.6em 0 .5em;}
.imp-post-content h2,.elementor-widget-theme-post-content h2{font-size:26px}
.imp-post-content h3,.elementor-widget-theme-post-content h3{font-size:21px}
.imp-post-content p,.elementor-widget-theme-post-content p{font-size:17px;line-height:1.75;margin:0 0 1.1em;}
.imp-post-content a,.elementor-widget-theme-post-content a{color:#e85d2a !important;text-decoration:none;}
.imp-post-content a:hover,.elementor-widget-theme-post-content a:hover{text-decoration:underline;color:#c0491d !important}
.imp-post-content strong,.elementor-widget-theme-post-content strong{color:#c9d1e4;font-weight:700}
.imp-post-content ul,.imp-post-content ol,.elementor-widget-theme-post-content ul,.elementor-widget-theme-post-content ol{margin:0 0 1.1em;padding-left:1.4em;}
.imp-post-content li,.elementor-widget-theme-post-content li{margin:.45em 0;line-height:1.7}
.imp-post-content blockquote,.elementor-widget-theme-post-content blockquote{border-left:3px solid #e85d2a;padding:2px 0 2px 18px;margin:1.3em 0;color:#3f5058;font-style:italic;}
.imp-post-content img,.elementor-widget-theme-post-content img{border-radius:10px}

/* ---- Post TITLE / META ---- */
.elementor-widget-theme-post-title .elementor-heading-title{font-family:Archivo,sans-serif;color:#fff;font-weight:800;line-height:1.15;}
.elementor-widget-post-info .elementor-icon-list-text,.elementor-widget-post-info a{color:#5A6D75}
.elementor-widget-post-info .elementor-icon-list-icon i{color:#e85d2a}

/* ---- ARCHIVE / SEARCH cards ---- */
.elementor-posts .elementor-post__title a{font-family:Archivo,sans-serif;color:#fff !important;font-weight:700;}
.elementor-posts .elementor-post__title a:hover{color:#e85d2a}
.elementor-posts .elementor-post__excerpt p{font-family:Inter,sans-serif;color:#5A6D75}
.elementor-posts .elementor-post__meta-data{color:#8296a0;font-size:13px}
.elementor-posts .elementor-post__read-more{color:#e85d2a;font-family:Archivo,sans-serif;font-weight:700;text-decoration:none;}
.elementor-posts .elementor-post__card,.elementor-posts .elementor-post{border-radius:14px;overflow:hidden}

/* ---- SINGLE POST HERO — title left, featured image right ---- */
.e-con:has(> .elementor-widget-theme-post-featured-image){flex-direction:row-reverse;flex-wrap:wrap;align-items:center;gap:44px;}
.e-con:has(> .elementor-widget-theme-post-featured-image) > .elementor-widget-theme-post-featured-image{flex:1 1 380px;min-width:0;}
.e-con:has(> .elementor-widget-theme-post-featured-image) > .elementor-element{flex:1 1 380px;}
.elementor-widget-theme-post-featured-image img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;box-shadow:0 16px 40px rgba(18,38,47,.16);display:block;}
@media(max-width:767px){.e-con:has(> .elementor-widget-theme-post-featured-image){flex-direction:column;}}

/* ---- HEADER / NAV — hamburger + toggles on-brand ---- */
.imp-hdr .burger,.imp-hdr .burger i{color:#0b1220 !important;background:none !important}
.imp-hdr .burger:hover,.imp-hdr .burger:hover i,.imp-hdr .burger:focus,.imp-hdr .burger:focus i{color:#e85d2a !important;background:none !important}
.elementor-menu-toggle,.elementor-menu-toggle i,.elementor-menu-toggle svg{color:#0b1220 !important;fill:#0b1220 !important}
.elementor-menu-toggle:hover,.elementor-menu-toggle:hover i{color:#e85d2a !important}

/* ---- STANDALONE-PAGE TITLES — ALL CAPS ---- */
.imp-rev-hero h1,.imp-up-hero h1,.imp-simple-hero h1,.imp-about-hero h1{text-transform:uppercase;letter-spacing:-0.01em}

/* ---- UPLOAD PAGE — flatten WP File Upload grey wrapper ---- */
.imp-upload-card .wfu_visible_element,.imp-upload-card .wfu_container,.imp-upload-card .wfu_uploadform,
.imp-upload-card table,.imp-upload-card tbody,.imp-upload-card tr,.imp-upload-card td{background:transparent !important;}

/* ---- LEGAL PAGES — content width 980px ---- */
.imp-legal{--gutter:max(22px, calc((100% - 980px) / 2)) !important}

/* =====================================================================
   GRAVITY FORMS — compact, placeholder-label style (matches a designed .qf card).
   REUSABLE: this is the block that took the longest to dial in. Keep it.
   Remember: switch the form's THEME to "Gravity Forms 2.5" (not Orbital) or CSS won't apply.
   ===================================================================== */
.gform_wrapper{--navy:#0b1220;--teal:#e85d2a;--field:#f4f8fa;--fieldbd:#e6eef1;font-family:Inter,-apple-system,sans-serif}
.gform_wrapper form{margin:0}
.gform_wrapper .gform_title,.gform_wrapper .gform_description{display:none}
.gform_wrapper .gform_fields{grid-row-gap:12px!important}
.gform_wrapper .gfield{margin:0!important}
.gform_wrapper .gfield_label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],.gform_wrapper textarea,.gform_wrapper select{
  width:100%!important;border:1px solid var(--fieldbd)!important;border-radius:12px!important;padding:13px 16px!important;font-size:15px!important;color:#26333A!important;background:var(--field)!important;box-shadow:none!important;transition:border-color .15s,box-shadow .15s}
.gform_wrapper input::placeholder,.gform_wrapper textarea::placeholder{color:#7d929b!important;opacity:1}
.gform_wrapper input:focus,.gform_wrapper textarea:focus,.gform_wrapper select:focus{border-color:var(--teal)!important;background:#fff!important;box-shadow:0 0 0 3px rgba(232,93,42,.14)!important;outline:none!important}
.gform_wrapper textarea{min-height:96px!important}
.gform_wrapper .gform_fileupload_rules{display:none!important}
.gform_wrapper .ginput_container_fileupload{border:1px dashed #bcd7de!important;border-radius:12px!important;background:#fff!important;padding:14px!important;text-align:center}
.gform_wrapper .gform_drop_area{background:none!important;border:0!important;padding:0!important;margin:0!important;color:#e85d2a!important;font-family:Archivo,sans-serif!important;font-weight:700!important;font-size:14px!important}
.gform_wrapper .gform_button_select_files{background:none!important;border:0!important;color:#e85d2a!important;font-family:Archivo,sans-serif!important;font-weight:700!important;font-size:14px!important;padding:0!important;cursor:pointer;text-decoration:underline}
.gform_wrapper .gform_footer{margin-top:16px!important}
.gform_wrapper .gform_footer input[type=submit],.gform_wrapper .gform_button{background:linear-gradient(135deg,#ff6a33,#e85d2a)!important;color:#fff!important;font-family:Archivo,sans-serif!important;font-weight:700!important;font-size:15px!important;border:0!important;border-radius:12px!important;padding:14px 26px!important;width:100%!important;cursor:pointer!important;box-shadow:0 8px 20px rgba(232,93,42,.28)!important;transition:transform .12s}
.gform_wrapper .gform_footer input[type=submit]:hover{transform:translateY(-2px)!important}
.gform_confirmation_message{font-family:Inter,sans-serif;color:#26333A;background:#fdeee7;border:1px solid #f6d5c4;border-radius:12px;padding:16px 18px}
.gform_wrapper select{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;font-size:15px!important;line-height:1.3!important;padding:13px 40px 13px 16px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237d929b' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:16px!important;text-overflow:ellipsis}
.gform_wrapper .gfield select,.gform_wrapper .ginput_container_select select,.gform_wrapper select.gfield_select{font-size:15px!important;line-height:1.3!important;font-weight:400!important;color:#7d929b!important}
.gform_wrapper select option{font-size:15px!important;color:#26333A!important}
.gform_wrapper select:required:invalid{color:#7d929b!important}
.gform_wrapper select option[value=""]{color:#7d929b!important}

/* ---- PRODUCT PAGE BODY — content + embedded form (2-col, sticky) ---- */
.imp-prod-body{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.imp-content-col{flex:1 1 58%;min-width:0}
.imp-form-col{flex:1 1 320px;position:sticky;top:96px;background:#fff;border:1px solid #e2e9ec;border-radius:20px;padding:24px 22px;box-shadow:0 14px 40px rgba(18,38,47,.09)}
.imp-form-col .qf-head h3{font-family:Archivo,sans-serif;font-weight:800;color:#0b1220;font-size:22px;margin:0}
.imp-form-col .qf-head .qsub{display:flex;align-items:center;gap:7px;color:#e85d2a;font-size:13.5px;font-weight:600;margin:6px 0 14px}
@media(max-width:900px){.imp-form-col{position:static;flex-basis:100%}}
.qf h3{margin:0 0 16px!important;line-height:1.2}
.qf .gform_wrapper{margin-top:0}

/* ---- 303 tokens + base (for header/footer/content markup) ---- */
:root{--orange:#e85d2a;--orange-b:#ff6a33;--fd:"Archivo",system-ui,sans-serif;--fb:"Inter",system-ui,sans-serif;--ease:cubic-bezier(.19,1,.22,1);--bg:#04060f;--bg2:#0b1428;--panel:rgba(255,255,255,.03);--line:rgba(255,255,255,.12);--mut:#8a95ad}
.s303, .s303 *{box-sizing:border-box}
.s303 .wrap{width:100%;max-width:1240px;margin-inline:auto;padding-inline:clamp(20px,5vw,64px)}
.s303 img{display:block;max-width:100%}

/* ---- header / nav / mega-menu ---- */

.callbar{position:sticky;top:0;z-index:60;background:rgba(4,6,15,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.callbar .row{display:flex;align-items:center;justify-content:space-between;height:66px;gap:20px}
.callbar .brand img{height:34px;display:block}
.topnav{display:none;align-items:center;gap:26px;margin-left:auto;margin-right:8px}
@media(min-width:1000px){.topnav{display:flex}}
.navlink{font-family:var(--fd);font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#c6cde0;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:0;transition:.2s}
.navlink:hover{color:var(--orange)}
.navitem{position:static}
.mega{position:absolute;left:0;right:0;top:66px;background:#0a1330;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);padding:30px clamp(20px,5vw,64px) 26px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.22s var(--ease);box-shadow:0 40px 70px -30px rgba(0,0,0,.6);z-index:80}
.mega-wrap:hover .mega,.mega-wrap.open .mega{opacity:1;visibility:visible;transform:none}
.mega-grid{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:24px}
.mega-col h5{font-family:var(--fd);font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
.mega-col h5 a{color:var(--orange)}
.mega-col a{display:block;color:#c6cde0;font-size:.9rem;padding:5px 0;transition:.15s}
.mega-col a:hover{color:#fff}
.mega-foot{display:flex;align-items:center;justify-content:center;gap:9px;max-width:1280px;margin:22px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);font-family:var(--fd);font-weight:700;font-size:.9rem;color:#fff}
.mega-foot:hover{color:var(--orange)}
.navcta{display:flex;align-items:center;gap:12px}
.phone{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:800;font-size:1rem;background:var(--orange);color:#fff;padding:.5em 1.05em;border-radius:100px;transition:.2s}
.phone:hover{background:var(--orange-b)}
.pshort{display:none}@media(max-width:1000px){.phone .pnum{display:none}.phone .pshort{display:inline}}
.burger{display:none;background:none;border:0;cursor:pointer;padding:6px;color:#fff}
@media(max-width:1000px){.burger{display:flex}}
.mnav{position:fixed;inset:0;z-index:120;background:#0a1330;display:flex;flex-direction:column;gap:2px;padding:80px 34px 40px;overflow-y:auto;transform:translateX(100%);transition:transform .32s var(--ease)}
.mnav.open{transform:none}
.mnav .mhead{font-family:var(--fd);font-weight:800;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.mnav .mprod{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.mnav .mcat>span{font-family:var(--fd);font-weight:800;font-size:.95rem;color:#fff;display:block;margin-bottom:4px}
.mnav .mcat a{display:inline-block;font-size:.86rem;color:#9aa6bd;padding:4px 12px 4px 0}
.mnav .mcat a:hover{color:var(--orange)}
.mnav .mtop{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
.mnav .mtop a{font-family:var(--fd);font-weight:800;font-size:1.3rem;text-transform:uppercase;color:#fff;padding:9px 0}
.mnav .mnav-call{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;background:var(--orange);border-radius:100px;margin-top:18px;padding:15px;font-size:1.1rem}
.mnav .mnav-quote{display:block;text-align:center;border:1.5px solid rgba(255,255,255,.28);border-radius:100px;padding:13px;color:#fff;margin-top:10px}
.mclose{position:absolute;top:20px;right:24px;color:#fff;background:none;border:0;cursor:pointer}
@media(max-width:980px){.mega-grid{grid-template-columns:repeat(3,1fr)}}

/* ---- footer ---- */

.ft{background:#04060f;color:#9aa6bd;padding:clamp(56px,8vw,90px) 0 34px;border-top:1px solid rgba(255,255,255,.1)}
.ft .ic{vertical-align:middle}
.ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr;gap:34px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.ft-brand img{height:44px;margin-bottom:16px}.ft-brand p{max-width:32ch;font-size:.9rem;line-height:1.6}
.ft-call{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-family:var(--fd,"Archivo");font-weight:800;font-size:1.2rem;color:#fff}.ft-call:hover{color:var(--orange,#e85d2a)}
.ft-social{display:flex;gap:10px;margin-top:20px}
.ft-social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.16);border-radius:50%;display:grid;place-items:center;color:#c6cde0;transition:.2s}
.ft-social a:hover{background:var(--orange,#e85d2a);border-color:transparent;color:#fff}
.ft h4{font-family:var(--fd,"Archivo");color:#fff;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
.ft-col a{display:block;margin-bottom:9px;font-size:.9rem}.ft-col a:hover{color:#fff}
.ft-contact span{display:flex;align-items:center;gap:9px;margin-bottom:12px;font-size:.9rem}.ft-contact a:hover{color:#fff}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:26px;font-size:.82rem;color:#6b7690}
.ft-legal{display:flex;gap:20px}.ft-legal a:hover{color:#fff}
@media(max-width:900px){.ft-grid{grid-template-columns:1fr 1fr;gap:28px}.ft-brand{grid-column:span 2}}
@media(max-width:560px){.ft-grid{grid-template-columns:1fr;gap:24px}.ft-brand{grid-column:span 1}.ft-col:not(.ft-contact){display:none}.ft{padding-top:46px}.ft-bottom{flex-direction:column;align-items:flex-start;gap:12px}}

.cl{--o:#e85d2a;--ob:#ff6a33;--tx:#fff;--mut:#8a95ad;--sub:#c9d1e4;--ln:rgba(255,255,255,.12);--cd:rgba(255,255,255,.03);--fd:"Archivo",system-ui,sans-serif;--fb:"Inter",system-ui,sans-serif;background:#04060f;color:var(--tx);font-family:var(--fb);line-height:1.6}
.cl *{box-sizing:border-box}
.cl .wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,5vw,64px)}
.cl h1,.cl h2,.cl h3{font-family:var(--fd);line-height:1.05;letter-spacing:-.02em;font-weight:900;color:var(--tx)}
.cl a{color:inherit;text-decoration:none}
.cl .hero{position:relative;padding:clamp(30px,6vw,56px) 0 clamp(40px,7vw,72px);overflow:hidden}
.cl .hero .wrap{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media(min-width:920px){.cl .hero .wrap{grid-template-columns:1.05fr .95fr;gap:52px}}
.cl .crumb{font-family:var(--fd);font-weight:700;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-bottom:16px}
.cl .crumb span{color:var(--o)}
.cl .hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem);letter-spacing:-.03em}
.cl .hero .sub{color:var(--sub);font-size:clamp(1.05rem,1.6vw,1.24rem);margin-top:18px;max-width:48ch}
.cl .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
.cl .bigcall{display:inline-flex;align-items:center;gap:10px;font-family:var(--fd);font-weight:800;font-size:1.1rem;background:var(--o);color:#fff;padding:.72em 1.4em;border-radius:100px;transition:.2s}
.cl .bigcall:hover{background:var(--ob);transform:translateY(-2px)}
.cl .ghost{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:700;color:#fff;border:1.5px solid rgba(255,255,255,.4);padding:.8em 1.4em;border-radius:100px}
.cl .ghost:hover{border-color:var(--o)}
.cl .hero-media{border-radius:16px;overflow:hidden;aspect-ratio:4/3.2;box-shadow:0 40px 80px -34px rgba(0,0,0,.5)}
.cl .hero-media img{width:100%;height:100%;object-fit:cover}
.cl .sec{padding:clamp(44px,7vw,88px) 0;border-top:1px solid var(--ln)}
.cl .eyebrow{font-family:var(--fd);font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.75rem;color:var(--o);display:inline-flex;gap:.6em;align-items:center}
.cl .eyebrow::before{content:"";width:26px;height:2px;background:var(--o)}
.cl .lead{font-size:clamp(1.15rem,2vw,1.5rem);max-width:60ch;margin-top:14px}
.cl .lead b{color:var(--o)}
.cl .types{display:grid;grid-template-columns:1fr;gap:16px;margin-top:30px}
@media(min-width:720px){.cl .types{grid-template-columns:1fr 1fr}}
.cl .tcard{border:1px solid var(--ln);border-radius:14px;background:var(--cd);padding:22px 22px 24px}
.cl .tcard h3{font-size:1.2rem;text-transform:uppercase}
.cl .tcard p{color:var(--mut);margin-top:8px}
.cl .uses{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.cl .uses span{border:1px solid var(--ln);border-radius:100px;padding:.5em 1em;font-family:var(--fd);font-weight:600;font-size:.85rem}
.cl .gallery-slot{margin-top:26px;border:1px dashed var(--ln);border-radius:14px;padding:30px;text-align:center;color:var(--mut);font-family:var(--fd);font-size:.9rem}
.cl .faq{max-width:840px}
.cl .faq details{border-top:1px solid var(--ln);padding:18px 0}
.cl .faq summary{font-family:var(--fd);font-weight:700;font-size:1.12rem;cursor:pointer;display:flex;justify-content:space-between;gap:16px;list-style:none}
.cl .faq summary::-webkit-details-marker{display:none}
.cl .faq summary .pl{color:var(--o);font-size:1.5rem;line-height:1;transition:.2s}
.cl .faq details[open] summary .pl{transform:rotate(45deg)}
.cl .faq .a{margin-top:10px;color:var(--mut);max-width:70ch}
.cl .band{background:#080d1e;text-align:center;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}
.cl .band h2{font-size:clamp(1.8rem,5vw,3.2rem);text-transform:uppercase}
.cl .band .num{display:inline-flex;align-items:center;gap:12px;font-family:var(--fd);font-weight:900;font-size:clamp(1.6rem,4.5vw,2.6rem);color:var(--o);margin-top:16px}
.cl .formsec .wrap{max-width:820px}
/* rebuild-marker */

/* ===== session fixes/overrides ===== */
/* Flush 303 header/footer edge-to-edge (remove Elementor container padding + box width) */
.elementor-location-header>.e-con,.elementor-location-footer>.e-con{padding:0 !important;max-width:100% !important;width:100% !important;--content-width:100% !important}
.elementor-location-header>.e-con>.elementor-widget-html,
.elementor-location-footer>.e-con>.elementor-widget-html{width:100% !important;max-width:100% !important}
.s303-hdr,.s303-ft{width:100% !important}

/* Channel-letter option cards -> image cards */
.cl .types{display:grid;grid-template-columns:1fr;gap:16px;margin-top:28px}
@media(min-width:560px){.cl .types{grid-template-columns:1fr 1fr}}
@media(min-width:1040px){.cl .types{grid-template-columns:repeat(4,1fr)}}
.cl .tcard{border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.03);overflow:hidden;display:flex;flex-direction:column;transition:.2s;padding:0}
.cl .tcard:hover{border-color:rgba(232,93,42,.55);transform:translateY(-3px)}
.cl .tcard-img{aspect-ratio:4/3;overflow:hidden;background:#080d1e;display:block}
.cl .tcard-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.cl .tcard:hover .tcard-img img{transform:scale(1.05)}
.cl .tcard-body{padding:18px 18px 22px}
.cl .tcard h3{font-size:1.12rem;text-transform:uppercase}
.cl .tcard p{color:#8a95ad;margin-top:8px;font-size:.95rem}

/* Center CTA buttons in the closing band */
.cl .band .cta, .cl .cta.center{justify-content:center}

/* Client approved BLACK (not navy) — force footer + accent wells to the #04060f base */
.s303-ft{background:#04060f !important}
.cl .tcard-img{background:#04060f !important}
.cl .gallery-slot{background:#04060f !important}

/* Single/archive blog: light headings + capped featured image */
.elementor-location-single .elementor-widget-theme-post-content h1,
.elementor-location-single .elementor-widget-theme-post-content h2,
.elementor-location-single .elementor-widget-theme-post-content h3,
.elementor-location-single .elementor-widget-theme-post-content h4,
.elementor-location-single .elementor-widget-theme-post-content h5,
.elementor-location-single .elementor-widget-theme-post-content h6{color:#fff}
.elementor-location-single .elementor-widget-theme-post-featured-image img{max-height:380px;width:100%;object-fit:cover}
.elementor-location-archive .elementor-post__title,.elementor-location-search .elementor-post__title,
.elementor-location-archive .elementor-post__title a,.elementor-location-search .elementor-post__title a{color:#fff}

/* Blog feed: readable (white) post titles */
.elementor-posts-container .elementor-post__title a,.elementor-post__card .elementor-post__title a{color:#fff !important}
.elementor-posts-container .elementor-post__title a:hover,.elementor-post__card .elementor-post__title a:hover{color:#e85d2a !important}
/* Single post: show the WHOLE featured image, contained (two-column hero) */
.elementor-location-single .elementor-widget-theme-post-featured-image img{max-height:none !important;object-fit:contain !important;height:auto !important;width:100%;border-radius:16px}

/* Base body/html black so no white shows at header seam or section gaps */
html,body{background:#04060f !important}
.s303-hdr-spacer{height:63px}

/* Category hero: support combined .wrap.hero + cap the hero image (contained two-column) */
.cl .wrap.hero{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media(min-width:900px){.cl .wrap.hero{grid-template-columns:1.05fr .95fr}}
.cl .hero-media img{width:100%;height:auto;max-height:460px;object-fit:cover;border-radius:16px;display:block}
/* restore 1787243838637 */

/* Remove double divider under header (hero section top border) */
.cl .sec.hero{border-top:0 !important}
/* CTA band heading: smaller so long all-caps copy isn't overwhelming */
.cl .band .h2{font-size:clamp(1.6rem,3.4vw,2.2rem) !important;line-height:1.12}

/* Blog post in-content headings must be readable on black (beat kit heading color) */
.elementor-location-single .elementor-widget-theme-post-content h1,
.elementor-location-single .elementor-widget-theme-post-content h2,
.elementor-location-single .elementor-widget-theme-post-content h3,
.elementor-location-single .elementor-widget-theme-post-content h4,
.elementor-location-single .elementor-widget-theme-post-content h5,
.elementor-location-single .elementor-widget-theme-post-content h6{color:#fff !important}

/* Gravity Form (Contact) styled for dark card */
.gform_wrapper .gfield_label,.gform_wrapper label{color:#fff !important;font-family:var(--fb);font-weight:600}
.gform_wrapper .gfield_required{color:var(--o2) !important}
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],.gform_wrapper input[type=url],.gform_wrapper textarea,.gform_wrapper select{background:#04060f !important;border:1px solid rgba(255,255,255,.12) !important;color:#fff !important;border-radius:8px !important;padding:10px 12px !important}
.gform_wrapper input::placeholder,.gform_wrapper textarea::placeholder{color:#8a95ad !important}
.gform_wrapper .gform_footer input[type=submit],.gform_wrapper .gform_footer button,.gform_wrapper button.gform_button{background:#e85d2a !important;color:#fff !important;border:0 !important;border-radius:999px !important;padding:12px 28px !important;font-family:var(--fd) !important;font-weight:700 !important;cursor:pointer;width:auto !important}
.gform_wrapper .gform_footer input[type=submit]:hover{background:#ff6a33 !important}

/* Contact info block: label/value spacing */
.cl .info{display:grid;grid-template-columns:1fr;gap:10px;margin-top:22px;max-width:560px}
.cl .info .row{display:flex;gap:14px;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:10px}
.cl .info .row b{color:#e85d2a;font-family:var(--fd);min-width:84px;flex:none}
.cl .info .row span{color:#c9d1e4}
/* Gravity Forms file upload drop area: dark, not white */
.gform_wrapper .gform_drop_area{background:#04060f !important;border:1px dashed rgba(255,255,255,.25) !important;border-radius:12px !important}
.gform_wrapper .gform_drop_instructions{color:#8a95ad !important}
.gform_wrapper .gform_button_select_files,.gform_wrapper button.gform_button_select_files{background:transparent !important;border:1px solid #e85d2a !important;color:#ff6a33 !important;border-radius:999px !important;padding:8px 18px !important;cursor:pointer}

/* Fix: file-upload outer wrapper was white */
.gform_wrapper .ginput_container_fileupload{background:transparent !important}
.gform_wrapper input[type=file]{background:transparent !important;color:#8a95ad !important}

/* FAQ accordion toggle indicator (+/-) */
.cl .faq details summary{cursor:pointer;position:relative}
.cl .faq details summary::after{content:"+";margin-left:auto;padding-left:18px;color:#e85d2a;font-family:var(--fd);font-weight:700;font-size:1.6rem;line-height:.8;flex:none;align-self:center}
.cl .faq details[open] summary::after{content:"\2212"}

/* Contact info tel/mailto links */
.cl .info .row a{color:#c9d1e4;text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.cl .info .row a:hover{color:#e85d2a;border-color:#e85d2a}

/* Our Work filterable gallery */
.cl.our-work .filters{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 26px}
.cl.our-work .fbtn{font-family:var(--fd);font-weight:700;font-size:.86rem;padding:9px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#c9d1e4;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.03em}
.cl.our-work .fbtn:hover{border-color:#e85d2a;color:#fff}
.cl.our-work .fbtn.active{background:#e85d2a !important;border-color:#e85d2a !important;color:#fff !important}
.cl.our-work .pfgrid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.cl.our-work .pfitem{margin:0 !important;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#04060f;border:1px solid rgba(255,255,255,.12)}
.cl.our-work .pfitem img{width:100% !important;height:100% !important;object-fit:cover;display:block;transition:transform .35s}
.cl.our-work .pfitem:hover img{transform:scale(1.05)}

/* --- Fix: "Recent Work" mgrid gallery collapsing to 2 columns instead of 3 ---
   Root cause: .cl .mgrid uses CSS multi-column (column-count:3) with default
   column-fill:balance. When items have uneven heights (e.g. portrait vs.
   landscape photos), the browser's balancing algorithm can produce a fully
   valid "balanced" layout using fewer than 3 populated columns, leaving the
   3rd column empty regardless of item count. Confirmed via live testing.
   Fix: switch to CSS Grid, which always fills all defined columns (in row
   order) and has no such empty-column failure mode, at every breakpoint the
   original rule defined. Added 2026-08-27. */
.cl .mgrid {
  column-count: unset !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 14px !important;
}
.cl .mgrid img {
  margin: 0 !important;
  break-inside: unset !important;
}
@media (max-width: 900px) {
  .cl .mgrid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
  .cl .mgrid { grid-template-columns: 1fr !important; }
}

/* Hide redundant FAQ toggle span — ::after handles it */
.cl .faq summary .pl{display:none!important}
/* Hide blog posts without featured image */
.elementor-post:not(.has-post-thumbnail){display:none!important}

/* Blog pagination colors */
.elementor-pagination{text-align:center;width:100%}
.elementor-pagination .page-numbers{color:#fff!important;background:transparent!important;border-color:rgba(255,255,255,.2)!important}
.elementor-pagination .page-numbers.current{background:transparent!important;border-color:#e85d2a!important;color:#e85d2a!important;font-weight:700}
.elementor-pagination .page-numbers:hover{background:transparent!important;border-color:#e85d2a!important;color:#e85d2a!important}

/* Blog excerpt text color */
.elementor-post__excerpt p,.elementor-post__excerpt{color:var(--sub,#8899a6)!important}

/* Blog post title color */
.elementor-post__title a{color:#fff!important}
.elementor-post__title a:hover{color:#e85d2a!important}

/* Blog date meta color */
.elementor-post__meta-data{color:var(--sub,#8899a6)!important}/* End custom CSS */