:root{
  --rfg-navy:#082e49;--rfg-navy-deep:#041b2b;--rfg-blue:#0d466b;--rfg-red:#b84d32;--rfg-cyan:#35b8d4;
  --rfg-text:#183244;--rfg-muted:#667884;--rfg-line:#dce4e9;--rfg-soft:#f4f7f9;--rfg-white:#fff;
  --rfg-content-max:1180px;--rfg-header-height:76px;--rfg-shadow:0 8px 28px rgba(5,35,55,.10)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body.rfg-shell{margin:0;min-height:100vh;background:#fff;color:var(--rfg-text);font-family:Arial,Helvetica,sans-serif;line-height:1.55}
body.rfg-shell a{color:var(--rfg-blue)}body.rfg-shell img{max-width:100%;height:auto}
body.rfg-shell button,body.rfg-shell input,body.rfg-shell select,body.rfg-shell textarea{font:inherit}
body.rfg-shell table{width:100%;border-collapse:collapse}body.rfg-shell th,body.rfg-shell td{padding:.65rem;border-bottom:1px solid var(--rfg-line);text-align:left}
body.rfg-shell input,body.rfg-shell select,body.rfg-shell textarea{max-width:100%;padding:.65rem .75rem;border:1px solid #bccbd4;border-radius:4px;background:#fff}
body.rfg-shell .btn,body.rfg-shell button:not(.rfg-menu-toggle),body.rfg-shell input[type="submit"],body.rfg-shell input[type="button"]{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:40px;padding:.62rem 1rem;border:1px solid var(--rfg-navy);border-radius:4px;background:var(--rfg-navy);color:#fff;cursor:pointer;text-decoration:none}
.rfg-shell-inner{width:min(var(--rfg-content-max),92%);margin:0 auto}.rfg-app-inner{width:100%;max-width:none;margin:0}
.rfg-topbar{background:var(--rfg-navy-deep);color:#dce8ee;font-size:.82rem}.rfg-topbar .rfg-shell-inner{padding:.42rem 0}
.rfg-site-header{position:relative;z-index:100;background:#fff;border-bottom:1px solid var(--rfg-line)}.rfg-sticky-header .rfg-site-header{position:sticky;top:0}
.rfg-header-inner{width:min(1440px,96%);min-height:var(--rfg-header-height);margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}
.rfg-brand{display:block}.rfg-brand img{display:block;width:255px;max-width:34vw}
.rfg-primary-nav{display:flex;justify-content:center;min-width:0}.rfg-primary-nav ul,.rfg-primary-nav .mod-menu{margin:0;padding:0;list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px}
.rfg-primary-nav li{margin:0;padding:0;position:relative}.rfg-primary-nav a{display:block;padding:.8rem .2rem;color:var(--rfg-text);text-decoration:none;font-weight:700;font-size:.9rem}
.rfg-primary-nav a:hover,.rfg-primary-nav .active>a,.rfg-primary-nav .current>a{color:var(--rfg-red)}
.rfg-primary-nav ul ul{position:absolute;top:100%;left:0;min-width:220px;display:none;padding:.5rem;background:#fff;border:1px solid var(--rfg-line);box-shadow:var(--rfg-shadow)}
.rfg-primary-nav li:hover>ul{display:block}.rfg-primary-nav ul ul li{width:100%}.rfg-primary-nav ul ul a{padding:.55rem .7rem}
.rfg-user-area{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;font-size:.88rem}.rfg-user-name{color:var(--rfg-muted);font-weight:700}
.rfg-menu-toggle{display:none;border:0;background:transparent;color:var(--rfg-navy);cursor:pointer;font-weight:700;gap:.45rem;align-items:center}
.rfg-hero-position{width:100%;margin:0}.rfg-breadcrumbs{padding:.55rem 0;background:var(--rfg-soft);border-bottom:1px solid var(--rfg-line);font-size:.84rem}
.rfg-main{min-height:60vh}.rfg-mode-website .rfg-main{padding:2rem 0 3rem}.rfg-mode-home .rfg-main,.rfg-mode-app .rfg-main{padding:0}
.rfg-mode-home .rfg-component,.rfg-mode-app .rfg-component{width:100%;min-width:0}.rfg-mode-app .rfg-component{min-height:calc(100vh - var(--rfg-header-height))}
.rfg-content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.rfg-content-grid.has-left{grid-template-columns:250px minmax(0,1fr)}.rfg-content-grid.has-right{grid-template-columns:minmax(0,1fr) 250px}.rfg-content-grid.has-left.has-right{grid-template-columns:230px minmax(0,1fr) 230px}
.rfg-sidebar{align-self:start;min-width:0}.rfg-sidebar .moduletable,.rfg-sidebar .card{margin-bottom:1rem;padding:1rem;border:1px solid var(--rfg-line);border-radius:5px;background:#fff}
.rfg-site-footer{background:var(--rfg-navy-deep);color:#b9cbd5}.rfg-footer-inner{width:min(1440px,94%);margin:0 auto;padding:26px 0}.rfg-footer-modules{margin-bottom:16px}.rfg-footer-meta{padding-top:12px;border-top:1px solid rgba(255,255,255,.12);font-size:.84rem}
joomla-alert{display:block;width:min(var(--rfg-content-max),92%);margin:1rem auto}
.rfg-mode-website h1,.rfg-mode-website h2,.rfg-mode-website h3,.rfg-mode-website h4{color:var(--rfg-navy);line-height:1.18}.rfg-mode-website h1{font-size:clamp(2rem,4vw,3.3rem)}.rfg-mode-website h2{font-size:clamp(1.55rem,3vw,2.45rem)}

/* RFG Home page article */
.rfg-homepage{--home-navy:#072b46;--home-red:#b84d32;--home-cyan:#35b8d4;--home-text:#10283b;--home-muted:#667582;--home-line:#dbe2e7;width:100%;overflow:hidden;background:#fff;color:var(--home-text)}
.rfg-homepage *{box-sizing:border-box}.rfg-home-container{width:min(1180px,92%);margin:0 auto}
.rfg-home-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border:2px solid var(--home-red);border-radius:3px;background:var(--home-red);color:#fff!important;text-decoration:none!important;font-weight:800}.rfg-home-btn.alt{background:transparent;border-color:#fff}
.rfg-home-hero{min-height:610px;display:flex;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(3,25,41,.96) 0%,rgba(3,25,41,.88) 38%,rgba(3,25,41,.26) 70%,rgba(3,25,41,.08) 100%),url("../images/hero-screen-printing.jpg") center/cover no-repeat}
.rfg-home-hero-copy{max-width:690px;padding:72px 0}.rfg-home-eyebrow{font-size:.78rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;color:var(--home-red)}.rfg-home-hero .rfg-home-eyebrow{color:#fff}
.rfg-home-hero h1{margin:12px 0 18px;color:#fff;font-size:clamp(3rem,6vw,5.6rem);line-height:.98;letter-spacing:-.04em}.rfg-home-hero h1 span{color:#ff4a4f}.rfg-home-hero p{font-size:1.18rem;color:#eef4f7}.rfg-home-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.rfg-home-proofbar{background:var(--home-navy);color:#fff}.rfg-home-proofgrid{display:grid;grid-template-columns:repeat(4,1fr)}.rfg-home-proof{padding:24px 18px;text-align:center;border-right:1px solid rgba(255,255,255,.18)}.rfg-home-proof:last-child{border-right:0}.rfg-home-proof b{display:block;font-size:.92rem}.rfg-home-proof span{font-size:.84rem;color:#c9d7df}
.rfg-home-section{padding:76px 0}.rfg-home-section-head{text-align:center;max-width:820px;margin:0 auto 42px}.rfg-home-section-head h2{margin:8px 0 14px;color:var(--home-navy);font-size:clamp(2rem,4vw,3.25rem);line-height:1.05}.rfg-home-section-head p{color:var(--home-muted);font-size:1.05rem}
.rfg-home-services{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.rfg-home-card{min-width:0;overflow:hidden;border:1px solid var(--home-line);border-radius:7px;background:#fff;box-shadow:0 8px 24px rgba(3,31,50,.08)}
.rfg-home-photo{width:100%;height:190px;background-position:center;background-size:cover}.rfg-home-photo-prepress{background-image:url("../images/service-prepress.jpg")}.rfg-home-photo-separations{background-image:url("../images/service-separations-film.jpg")}.rfg-home-photo-screens{background-image:url("../images/service-screen-making.jpg")}.rfg-home-photo-printing{background-image:url("../images/service-screen-printing.jpg")}.rfg-home-photo-finishing{background-image:url("../images/service-finishing-packaging.jpg")}
.rfg-home-card-body{padding:18px}.rfg-home-card h3{margin:0 0 8px;color:var(--home-navy);font-size:1rem}.rfg-home-card p{margin:0;color:var(--home-muted);font-size:.9rem}
.rfg-home-materials{background:#071f31;color:#fff}.rfg-home-materials .rfg-home-section-head h2{color:#fff}.rfg-home-materials .rfg-home-section-head p{color:#cad7df}.rfg-home-material-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.rfg-home-material{padding:22px 14px;border-top:3px solid var(--home-red);background:#0d3856;color:#fff;text-align:center;font-weight:800}
.rfg-home-complex{display:grid;grid-template-columns:1.05fr .95fr;background:#f3f6f8}.rfg-home-complex-photo{min-height:460px;background:url("../images/complex-job-products.jpg") center/cover no-repeat}.rfg-home-complex-copy{padding:64px max(5vw,50px)}.rfg-home-complex h2{margin:10px 0 20px;color:var(--home-navy);font-size:clamp(2.2rem,4vw,4rem);line-height:1}.rfg-home-complex p{color:#526773;font-size:1.03rem}.rfg-home-checks{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;margin:24px 0 30px}.rfg-home-check{font-weight:700;color:var(--home-navy)}
.rfg-home-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.rfg-home-step{min-width:0;padding:22px 18px;border-top:4px solid var(--home-navy);background:#f6f8fa}.rfg-home-step strong{display:block;color:var(--home-red);font-size:.8rem;margin-bottom:7px}.rfg-home-step b{display:block;color:var(--home-navy);margin-bottom:6px}.rfg-home-step span{color:#657580;font-size:.85rem}
.rfg-home-cta{padding:70px 0;background:linear-gradient(120deg,#082b45,#0e476c);color:#fff;text-align:center}.rfg-home-cta h2{margin:8px 0 12px;color:#fff;font-size:clamp(2.2rem,5vw,4rem)}.rfg-home-cta p{max-width:760px;margin:0 auto 28px;color:#dce7ee}

.rfg-error-page{display:grid;place-items:center;min-height:100vh;background:var(--rfg-soft)}.rfg-error-wrap{width:min(600px,92%);text-align:center}.rfg-error-wrap img{width:290px;margin-bottom:30px}.rfg-error-code{font-size:5rem;font-weight:900;color:var(--rfg-red)}.rfg-button{display:inline-block;margin-top:15px;padding:.75rem 1.1rem;border-radius:4px;background:var(--rfg-navy);color:#fff!important;text-decoration:none}

@media(max-width:1000px){
  .rfg-header-inner{grid-template-columns:auto auto 1fr}.rfg-menu-toggle{display:inline-flex}.rfg-primary-nav{position:absolute;left:0;right:0;top:100%;display:none;padding:1rem 4%;background:#fff;border-bottom:1px solid var(--rfg-line);box-shadow:var(--rfg-shadow)}.rfg-primary-nav.is-open{display:block}.rfg-primary-nav ul,.rfg-primary-nav .mod-menu{display:block}.rfg-primary-nav ul ul{position:static;display:block;box-shadow:none;border:0;padding-left:1rem}.rfg-user-area{justify-self:end}
  .rfg-content-grid.has-left,.rfg-content-grid.has-right,.rfg-content-grid.has-left.has-right{grid-template-columns:1fr}
  .rfg-home-services{grid-template-columns:repeat(2,1fr)}.rfg-home-material-grid{grid-template-columns:repeat(3,1fr)}.rfg-home-steps{grid-template-columns:repeat(3,1fr)}.rfg-home-proofgrid{grid-template-columns:repeat(2,1fr)}.rfg-home-complex{grid-template-columns:1fr}.rfg-home-complex-photo{min-height:360px}
}
@media(max-width:650px){
  .rfg-header-inner{width:94%;gap:10px}.rfg-brand img{width:210px;max-width:58vw}.rfg-user-area{display:none}
  .rfg-home-services,.rfg-home-material-grid,.rfg-home-steps,.rfg-home-proofgrid{grid-template-columns:1fr}.rfg-home-proof{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.rfg-home-section{padding:56px 0}.rfg-home-complex-copy{padding:50px 6%}.rfg-home-checks{grid-template-columns:1fr}.rfg-home-photo{height:230px}
}


/* RFG Shell 1.0.1 component-only routes */
.rfg-component-only .rfg-main{padding:0;min-height:100vh}
.rfg-component-only .rfg-component{width:100%;max-width:none;min-width:0}


/* ================================================================
   RFG Shell 1.0.2 — breadcrumbs + modal UI
   ================================================================ */
.rfg-breadcrumbs{
  background:#f4f7f9;
  border-bottom:1px solid var(--rfg-line);
  padding:.62rem 0;
}
.rfg-breadcrumbs .breadcrumb,
.rfg-breadcrumbs ol,
.rfg-breadcrumbs ul{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:.35rem !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
.rfg-breadcrumbs li{
  display:flex !important;
  align-items:center !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  color:#647884 !important;
  font-size:.86rem !important;
}
.rfg-breadcrumbs li::marker{content:"" !important}
.rfg-breadcrumbs li + li::before{
  content:"›";
  display:inline-block;
  margin:0 .35rem 0 .05rem;
  color:#90a1ab;
  font-weight:700;
}
.rfg-breadcrumbs .mod-breadcrumbs__here{
  color:var(--rfg-navy) !important;
  font-weight:700 !important;
}
.rfg-breadcrumbs a{color:var(--rfg-blue) !important;text-decoration:none !important}
.rfg-breadcrumbs a:hover{color:var(--rfg-red) !important}

/* Material buttons */
body.rfg-shell button.rfg-home-material{
  width:100% !important;
  min-height:74px !important;
  padding:20px 14px !important;
  border:0 !important;
  border-top:3px solid var(--home-red) !important;
  border-radius:0 !important;
  background:#0d3856 !important;
  color:#fff !important;
  text-align:center !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  cursor:pointer !important;
  box-shadow:none !important;
}
body.rfg-shell button.rfg-home-material:hover,
body.rfg-shell button.rfg-home-material:focus{
  background:#155178 !important;
  transform:translateY(-2px);
}
.rfg-home-material small{display:block;margin-top:5px;color:#bcd2df;font-weight:400;font-size:.72rem}

/* Shared modal */
.rfg-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(2,18,30,.78);
}
.rfg-modal.is-open{display:flex}
.rfg-modal-dialog{
  width:min(760px,96vw);
  max-height:88vh;
  overflow:auto;
  border-radius:8px;
  background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.38);
}
.rfg-modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:22px 24px 16px;
  border-bottom:1px solid var(--rfg-line);
}
.rfg-modal-header h3{margin:0;color:var(--rfg-navy);font-size:1.65rem;line-height:1.15}
.rfg-modal-close{
  appearance:none;
  border:0 !important;
  background:transparent !important;
  color:#405663 !important;
  font-size:1.8rem !important;
  line-height:1 !important;
  min-height:auto !important;
  padding:0 !important;
  cursor:pointer !important;
}
.rfg-modal-body{padding:22px 24px 26px;color:#435965}
.rfg-modal-body p:first-child{margin-top:0}
.rfg-material-modal-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:start}
.rfg-material-modal-image{
  width:100%;
  min-height:265px;
  border-radius:6px;
  background:#eef3f6 center/cover no-repeat;
  border:1px solid var(--rfg-line);
}
.rfg-material-modal-copy ul{margin:.75rem 0 0;padding-left:1.15rem}
.rfg-material-modal-copy li{margin:.35rem 0}
.rfg-modal-kicker{margin-bottom:5px;color:var(--rfg-red);font-size:.72rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}

body.rfg-modal-open{overflow:hidden}

@media(max-width:700px){
  .rfg-material-modal-layout{grid-template-columns:1fr}
  .rfg-material-modal-image{min-height:220px}
  .rfg-quote-form{grid-template-columns:1fr}
  .rfg-quote-field.full,.rfg-quote-actions{grid-column:1}
}

/* ================================================================
   RFG Shell 1.0.3 — off-canvas navigation + login/account
   ================================================================ */
.rfg-header-inner{grid-template-columns:auto 1fr auto}
.rfg-header-spacer{min-width:0}
.rfg-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
body.rfg-shell .rfg-header-action{
  appearance:none!important;display:inline-flex!important;align-items:center!important;gap:.48rem!important;
  min-height:42px!important;padding:.58rem .8rem!important;border:1px solid var(--rfg-line)!important;
  border-radius:6px!important;background:#fff!important;color:var(--rfg-navy)!important;
  box-shadow:none!important;cursor:pointer!important;font-weight:800!important;font-size:.86rem!important
}
body.rfg-shell .rfg-header-action:hover,body.rfg-shell .rfg-header-action:focus{border-color:#9fb3bf!important;background:var(--rfg-soft)!important}
.rfg-header-action-icon{font-size:1.08rem;line-height:1}

/* The menu and account positions are rendered inside the drawer in 1.0.3. */
.rfg-primary-nav,.rfg-user-area,.rfg-menu-toggle{display:none!important}

.rfg-offcanvas-backdrop{
  position:fixed;inset:0;z-index:9997;background:rgba(2,18,30,.58);opacity:0;visibility:hidden;
  transition:opacity .22s ease,visibility .22s ease
}
.rfg-offcanvas{
  position:fixed;top:0;right:0;z-index:9998;width:min(430px,92vw);height:100dvh;background:#fff;
  color:var(--rfg-text);box-shadow:-18px 0 48px rgba(2,18,30,.22);transform:translateX(104%);
  transition:transform .24s ease;display:flex;flex-direction:column;overflow:hidden
}
body.rfg-offcanvas-open{overflow:hidden}
body.rfg-offcanvas-open .rfg-offcanvas-backdrop{opacity:1;visibility:visible}
body.rfg-offcanvas-open .rfg-offcanvas{transform:translateX(0)}
.rfg-offcanvas-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--rfg-line)}
.rfg-offcanvas-brand img{display:block;width:235px;max-width:68vw}
body.rfg-shell .rfg-offcanvas-close{
  appearance:none!important;width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;
  border:1px solid var(--rfg-line)!important;border-radius:50%!important;background:#fff!important;color:var(--rfg-navy)!important;
  font-size:1.75rem!important;font-weight:400!important;line-height:1!important;cursor:pointer!important;box-shadow:none!important
}
.rfg-offcanvas-body{padding:8px 0 32px;overflow:auto;overscroll-behavior:contain}
.rfg-offcanvas-section{padding:22px 24px;outline:none}
.rfg-offcanvas-section + .rfg-offcanvas-section{border-top:1px solid var(--rfg-line)}
.rfg-offcanvas-kicker{margin-bottom:12px;color:var(--rfg-red);font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.rfg-offcanvas-nav ul,.rfg-offcanvas-nav .mod-menu{display:block!important;margin:0!important;padding:0!important;list-style:none!important}
.rfg-offcanvas-nav li{display:block!important;margin:0!important;padding:0!important;border-bottom:1px solid #edf1f3!important;position:relative!important}
.rfg-offcanvas-nav li:last-child{border-bottom:0!important}
.rfg-offcanvas-nav a{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:.8rem 0!important;color:var(--rfg-navy)!important;text-decoration:none!important;font-weight:800!important;font-size:1rem!important}
.rfg-offcanvas-nav a:hover,.rfg-offcanvas-nav .active>a,.rfg-offcanvas-nav .current>a{color:var(--rfg-red)!important}
.rfg-offcanvas-nav ul ul{display:block!important;position:static!important;min-width:0!important;padding:0 0 .5rem 1rem!important;border:0!important;box-shadow:none!important;background:transparent!important}
.rfg-offcanvas-nav ul ul li{border-bottom:0!important}
.rfg-offcanvas-nav ul ul a{padding:.42rem 0!important;color:#536b78!important;font-size:.9rem!important;font-weight:700!important}
.rfg-offcanvas-account p{color:var(--rfg-muted)}
.rfg-account-summary{margin-bottom:14px;padding:12px 14px;border-radius:6px;background:var(--rfg-soft)}
.rfg-offcanvas-help{margin-top:14px!important;padding:11px 12px;border-left:3px solid var(--rfg-red);background:#f6f8f9;font-size:.82rem!important}
.rfg-offcanvas-login-link,
body.rfg-shell button.rfg-offcanvas-login-link{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;
  padding:.68rem 1rem!important;border:1px solid var(--rfg-red)!important;border-radius:5px!important;background:var(--rfg-red)!important;
  color:#fff!important;text-decoration:none!important;font-weight:800!important;cursor:pointer!important;box-shadow:none!important
}
.rfg-offcanvas-logout-form{margin:0}
.rfg-offcanvas-user-module .mod-login{margin:0}
.rfg-offcanvas-user-module label{display:block;margin:.55rem 0 .28rem;color:var(--rfg-navy);font-size:.82rem;font-weight:800}
.rfg-offcanvas-user-module input[type="text"],.rfg-offcanvas-user-module input[type="email"],.rfg-offcanvas-user-module input[type="password"]{width:100%;margin-bottom:.55rem}
.rfg-offcanvas-user-module .mod-login__options{margin-top:12px;padding-left:1rem}

@media(max-width:650px){
  .rfg-header-inner{grid-template-columns:auto 1fr auto;width:94%;gap:8px}
  .rfg-header-spacer{display:none}
  .rfg-header-actions{gap:5px}
  body.rfg-shell .rfg-header-action{padding:.52rem .62rem!important;font-size:.78rem!important}
  .rfg-header-action-icon{font-size:1rem}
}


/* RFG Shell 1.0.4 — balanced homepage messaging / company contact */
.rfg-footer-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.rfg-footer-contact a{
  color:#dce8ee;
  text-decoration:none;
  font-weight:700;
}
.rfg-footer-contact a:hover{text-decoration:underline}
.rfg-home-actions-center{justify-content:center}
.rfg-home-contact-line{
  margin:18px 0 0!important;
  color:#dce7ee!important;
  font-size:.95rem;
}
.rfg-home-contact-line a{
  color:#fff!important;
  font-weight:800;
}
.rfg-home-material small{
  display:block;
  margin-top:5px;
  font-size:.68rem;
  font-weight:600;
  opacity:.78;
}
.rfg-material-modal-copy .rfg-home-btn{
  margin-top:8px;
  font-size:.82rem;
  padding:10px 13px;
}


/* RFG Shell 1.0.5 — contact strip */
.rfg-contact-strip{
  width:100%;
  background:var(--rfg-navy-deep);
  color:#dce8ee;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.rfg-contact-strip-inner{
  width:min(1440px,96%);
  min-height:34px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
  padding:5px 0;
  font-size:.78rem;
}
.rfg-contact-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#eef5f8!important;
  text-decoration:none!important;
  white-space:nowrap;
}
a.rfg-contact-item:hover{
  color:#fff!important;
  text-decoration:underline!important;
}
.rfg-contact-label{
  color:#9fb9c9;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.67rem;
}
.rfg-sticky-header .rfg-contact-strip{
  position:sticky;
  top:0;
  z-index:102;
}
.rfg-sticky-header .rfg-site-header{
  top:34px;
}
@media(max-width:760px){
  .rfg-contact-strip-inner{
    justify-content:center;
    gap:8px 16px;
    flex-wrap:wrap;
    padding:7px 3%;
  }
  .rfg-contact-label{display:none}
  .rfg-contact-item{font-size:.73rem}
  .rfg-sticky-header .rfg-site-header{top:48px}
}
@media(max-width:520px){
  .rfg-contact-strip-inner{
    justify-content:center;
    gap:4px 12px;
  }
  .rfg-contact-hours{
    width:100%;
    justify-content:center;
  }
  .rfg-sticky-header .rfg-site-header{top:67px}
}


/* RFG Shell 1.0.7 — interaction hotfix */
.rfg-header-actions{display:flex;align-items:center;justify-content:flex-end}
.rfg-header-action{min-width:auto!important;padding:.62rem .88rem!important}
.rfg-offcanvas-account{background:#fbfcfd}
.rfg-offcanvas-account::before{content:"Account / Login";display:block;margin-bottom:10px;color:var(--rfg-navy);font-weight:900;font-size:1.05rem}


/* RFG Shell 1.0.8 — mobile contact labels and text-spacing hardening */

/* Keep descriptive labels visible on phones and tablets. */
@media(max-width:760px){
  .rfg-contact-strip{
    position:static!important;
  }
  .rfg-contact-strip-inner{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    justify-items:center;
    gap:4px;
    padding:7px 12px;
  }
  .rfg-contact-item{
    display:flex;
    justify-content:center;
    gap:7px;
    width:100%;
    white-space:normal;
    text-align:center;
    font-size:.76rem;
  }
  .rfg-contact-label{
    display:inline!important;
    flex:0 0 auto;
    color:#9fb9c9;
    font-size:.66rem;
  }

  /* Contact strip scrolls away on mobile; main header remains sticky. */
  .rfg-sticky-header .rfg-site-header{
    top:0!important;
  }
}

@media(max-width:520px){
  .rfg-contact-strip-inner{
    gap:3px;
    padding:6px 10px;
  }
  .rfg-contact-item{
    font-size:.72rem;
  }
  .rfg-contact-label{
    font-size:.63rem;
  }
}

/* Protect against text running directly into a bold label if another Joomla
   style overrides display:block on the homepage. */
.rfg-homepage .rfg-home-proof b + span,
.rfg-homepage .rfg-home-step b + span{
  display:block!important;
  margin-top:5px!important;
}

.rfg-homepage .rfg-home-card h3 + p,
.rfg-homepage .rfg-home-section-head h2 + p,
.rfg-homepage .rfg-home-complex h2 + p{
  margin-top:10px!important;
}

/* Generic fallback for inline bold-label/value patterns inside RFG homepage. */
.rfg-homepage b + span:not(.rfg-home-proof span),
.rfg-homepage strong + span{
  margin-left:.35em;
}


/* RFG Shell 1.0.9 — login/off-canvas cleanup */
.rfg-offcanvas-signin-note{
  margin:8px 0 0;
  color:var(--rfg-muted);
  font-size:1rem;
  line-height:1.55;
}

/* If a Login module is published in the menu position, keep its controls
   visually separated from the navigation links without exposing CMS wording. */
.rfg-offcanvas-nav .mod-login,
.rfg-offcanvas-nav .login,
.rfg-offcanvas-nav form{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--rfg-line);
}


/* RFG Shell 1.0.10 — single-purpose off-canvas navigation */
.rfg-offcanvas-account{display:none!important}


/* RFG Shell 1.0.11 — guest customer entry panel */
.rfg-customer-entry{
  margin:0 0 20px;
  padding:18px;
  border:1px solid var(--rfg-line);
  border-left:4px solid var(--rfg-red);
  border-radius:6px;
  background:var(--rfg-soft);
}
.rfg-customer-entry-kicker{
  color:var(--rfg-red);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.rfg-customer-entry h3{
  margin:4px 0 8px;
  color:var(--rfg-navy);
  font-size:1.12rem;
}
.rfg-customer-entry p{
  margin:0 0 12px;
  color:var(--rfg-muted);
  font-size:.88rem;
  line-height:1.5;
}
.rfg-customer-entry-btn{
  display:block;
  width:100%;
  padding:11px 12px;
  border-radius:5px;
  background:var(--rfg-red);
  color:#fff!important;
  text-align:center;
  text-decoration:none!important;
  font-weight:900;
}
.rfg-customer-entry-signin{
  margin:14px 0 0!important;
  color:var(--rfg-navy)!important;
}


/* RFG Shell 1.0.12 — navigation simplification + logo palette + proofbar spacing */

/* Brand palette: copper/rust + cyan from the RFG logo, with existing navy. */
.rfg-offcanvas-kicker{
  color:var(--rfg-red)!important;
}
.rfg-offcanvas-nav a:hover,
.rfg-offcanvas-nav .active>a,
.rfg-offcanvas-nav .current>a{
  color:var(--rfg-cyan)!important;
}

/* Customer access now sits directly beneath the Navigation heading rather than
   inside a large promotional card. */
.rfg-nav-customer-access{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:0 0 14px;
  padding:0 0 14px;
  border-bottom:1px solid var(--rfg-line);
}
.rfg-nav-customer-link,
.rfg-nav-customer-signin{
  display:block!important;
  min-width:0;
  padding:10px 11px!important;
  border:1px solid var(--rfg-line)!important;
  border-radius:5px!important;
  background:#fff!important;
  text-decoration:none!important;
}
.rfg-nav-customer-link{
  border-left:4px solid var(--rfg-red)!important;
}
.rfg-nav-customer-signin{
  border-left:4px solid var(--rfg-cyan)!important;
}
.rfg-nav-customer-label{
  display:block;
  color:var(--rfg-navy);
  font-size:.8rem;
  font-weight:900;
}
.rfg-nav-customer-detail{
  display:block;
  margin-top:2px;
  color:var(--rfg-muted);
  font-size:.72rem;
  font-weight:700;
}
a.rfg-nav-customer-link:hover{
  background:#f9f4f1!important;
}
a.rfg-nav-customer-link:hover .rfg-nav-customer-detail{
  color:var(--rfg-red)!important;
}

/* Retire old large customer-entry card if stale cached markup appears. */
.rfg-customer-entry{display:none!important}

/* Proofbar: use explicit block wrappers, never inline b/span adjacency. */
.rfg-home-proof{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:7px;
}
.rfg-home-proof-title{
  display:block;
  color:#fff;
  font-size:.92rem;
  line-height:1.25;
  font-weight:900;
}
.rfg-home-proof-text{
  display:block;
  color:#c9d7df;
  font-size:.84rem;
  line-height:1.45;
}
.rfg-home-proof b,
.rfg-home-proof span{
  display:block!important;
}

/* Material cards: logo-inspired copper top line and cyan helper text. */
.rfg-home-material{
  border-top-color:var(--home-red)!important;
}
.rfg-home-material small{
  color:var(--home-cyan)!important;
  opacity:1!important;
}

/* Use copper rather than bright red for other homepage accents/buttons. */
.rfg-home-btn{
  background:var(--home-red)!important;
  border-color:var(--home-red)!important;
}
.rfg-home-btn.alt{
  background:transparent!important;
  border-color:#fff!important;
}
.rfg-home-eyebrow{
  color:var(--home-red);
}
.rfg-home-hero .rfg-home-eyebrow{
  color:#fff;
}
.rfg-home-step strong{
  color:var(--home-red)!important;
}

@media(max-width:520px){
  .rfg-nav-customer-access{
    grid-template-columns:1fr;
  }
}


/* RFG Shell 1.0.13 — customer access ABOVE Navigation + route/spacing hardening */
.rfg-nav-customer-access{
  margin:0 0 18px!important;
  padding:0 0 18px!important;
}
.rfg-offcanvas-kicker{
  margin-top:0!important;
}
.rfg-nav-customer-signin{
  text-decoration:none!important;
  cursor:pointer;
}
a.rfg-nav-customer-signin:hover{
  background:#eef9fc!important;
}
a.rfg-nav-customer-signin:hover .rfg-nav-customer-detail{
  color:var(--rfg-cyan)!important;
}

/* Definitive proofbar fix even if the Home article still contains the older
   <b>Heading</b><span>Description</span> markup. */
.rfg-home-proof{
  white-space:normal!important;
}
.rfg-home-proof b,
.rfg-home-proof-title{
  display:block!important;
  width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
  line-height:1.25!important;
}
.rfg-home-proof span,
.rfg-home-proof-text{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  line-height:1.45!important;
}


/* RFG Shell 1.0.14 — reliable client login form */
.rfg-login-page{
  width:min(720px,92%);
  margin:28px auto 54px;
}
.rfg-login-heading{
  margin-bottom:20px;
}
.rfg-login-kicker{
  color:var(--rfg-red);
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.rfg-login-heading h1{
  margin:4px 0 8px;
  color:var(--rfg-navy);
}
.rfg-login-heading p{
  margin:0;
  color:var(--rfg-muted);
}
.rfg-login-form{
  padding:22px;
  border:1px solid var(--rfg-line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 7px 22px rgba(5,35,55,.07);
}
.rfg-login-form>label{
  display:block;
  margin-bottom:18px;
  color:var(--rfg-navy);
  font-weight:800;
}
.rfg-login-form label>span{
  color:var(--rfg-red);
}
.rfg-login-form small{
  display:block;
  margin-top:5px;
  color:var(--rfg-muted);
  font-weight:400;
}
.rfg-login-form input[type="text"],
.rfg-login-form input[type="password"]{
  display:block;
  width:100%;
  min-height:46px;
  margin-top:6px;
  padding:10px 12px;
  border:1px solid #b9c8d2;
  border-radius:5px;
  background:#fff;
  color:var(--rfg-navy);
  font:inherit;
}
.rfg-password-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
}
.rfg-password-toggle,
.rfg-login-submit{
  min-height:46px;
  padding:10px 16px;
  border-radius:5px;
  font:inherit;
  font-weight:900;
  cursor:pointer;
}
.rfg-password-toggle{
  border:1px solid var(--rfg-navy);
  background:#fff;
  color:var(--rfg-navy);
}
.rfg-login-submit{
  border:0;
  background:var(--rfg-red);
  color:#fff;
}
.rfg-login-remember{
  display:flex!important;
  align-items:center;
  gap:8px;
  margin:0 0 18px!important;
}
.rfg-login-remember input{
  width:auto!important;
  margin:0!important;
}
.rfg-login-remember span{
  color:var(--rfg-navy)!important;
}
.rfg-login-links{
  display:flex;
  gap:14px 22px;
  flex-wrap:wrap;
  padding-top:16px;
}
.rfg-login-links a{
  color:var(--rfg-blue);
  font-weight:700;
}
joomla-alert,
#system-message-container{
  display:block!important;
  width:min(960px,92%)!important;
  margin:14px auto!important;
}
joomla-alert{
  padding:12px 14px!important;
  border-radius:6px!important;
}
@media(max-width:600px){
  .rfg-password-row{grid-template-columns:1fr}
  .rfg-password-toggle{width:100%}
}


/* RFG Shell 1.0.15 — existing client offcanvas control */
button.rfg-nav-customer-signin{
  width:100%;
  margin:0;
  text-align:left;
  font:inherit;
  cursor:pointer;
}


/* RFG Shell 1.0.16 — self-contained off-canvas client sign in */
.rfg-offcanvas-signin{
  margin:0 0 18px;
  padding:14px;
  border:1px solid var(--rfg-line);
  border-left:4px solid var(--rfg-cyan);
  border-radius:6px;
  background:#f8fbfc;
}
.rfg-offcanvas-signin[hidden]{display:none!important}
.rfg-offcanvas-signin label{
  display:block;
  margin-bottom:11px;
  color:var(--rfg-navy);
  font-size:.78rem;
  font-weight:800;
}
.rfg-offcanvas-signin input[type="text"],
.rfg-offcanvas-signin input[type="password"]{
  width:100%;
  min-height:40px;
  margin-top:5px;
  padding:8px 9px;
  border:1px solid #b9c8d2;
  border-radius:4px;
  background:#fff;
}
.rfg-offcanvas-password-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  align-items:end;
}
.rfg-offcanvas-password-toggle{
  min-height:40px;
  padding:8px 10px;
  border:1px solid var(--rfg-navy);
  border-radius:4px;
  background:#fff;
  color:var(--rfg-navy);
  font-weight:800;
  cursor:pointer;
}
.rfg-offcanvas-remember{
  display:flex!important;
  align-items:center;
  gap:7px;
}
.rfg-offcanvas-remember input{width:auto!important;margin:0!important}
.rfg-offcanvas-signin-submit{
  width:100%;
  min-height:42px;
  border:0;
  border-radius:5px;
  background:var(--rfg-red);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
/* The shell now supplies its own client sign-in, so an old Joomla Login module
   left in the menu position is hidden to prevent duplicate sign-in forms. */
.rfg-offcanvas-nav .mod-login{
  display:none!important;
}
