/* Consolidated from the last supplied ZIP; visual styles preserved except hero overlay. */
:root{--rg-ink:#182028;--rg-soft:#f5f6f8;--rg-line:#e4e7eb;--rg-white:#fff;--rg-muted:#69727d;--rg-shadow:0 20px 50px rgba(27,35,43,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{color:var(--rg-ink);background:#fff;overflow-x:hidden}
a{text-decoration:none}
.rg-header{z-index:1040}
.rg-topbar{color:#e9edf1;font-size:.82rem}
.rg-topbar a{color:#fff}
.rg-topbar i{color:var(--rg-orange);margin-right:.35rem}
.rg-brand{display:inline-flex;align-items:center;gap:.7rem;max-width:20%}
.rg-brand-mark{display:grid;place-items:center;color:#1d2329}
.rg-brand strong,.rg-brand small{display:block;line-height:1}
.rg-brand small{letter-spacing:.15em;margin-top:.3rem}
.rg-navbar .nav-link{color:#e7ebef!important}
.rg-navbar .nav-link:hover,.rg-navbar .nav-link:focus{color:var(--rg-orange)!important}
.rg-navbar .dropdown-menu{background:#2a3139;border:0;border-top:3px solid var(--rg-orange);border-radius:0;box-shadow:0 16px 35px rgba(0,0,0,.24);padding:.5rem}
.rg-navbar .dropdown-item{color:#ecf0f4;font-size:.86rem;border-radius:0;padding:.7rem .85rem}
.rg-navbar .dropdown-item:hover{background:var(--rg-orange);color:#1d2329}
.navbar-toggler{border-color:rgba(255,255,255,.35)}
.navbar-toggler-icon{filter:invert(1)}
.rg-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.75rem 1.35rem;border:2px solid transparent;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;transition:.25s ease}
.rg-btn-primary,.rg-btn-call{background:var(--rg-orange);color:#20262d}
.rg-btn-primary:hover,.rg-btn-call:hover{background:var(--rg-orange-deep);color:#111;transform:translateY(-2px)}
.rg-btn-outline{border-color:#fff;color:#fff;background:transparent}
.rg-btn-outline:hover{background:#fff;color:#222}
.rg-btn-dark{background:var(--rg-dark-2);color:#fff}
.rg-btn-dark:hover{background:#111820;color:#fff;transform:translateY(-2px)}
.rg-hero{position:relative;min-height:760px;color:#fff;overflow:hidden}
.rg-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rg-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,33,40,.9) 0%,rgba(32,39,47,.72) 50%,rgba(26,31,37,.36) 100%)}
.rg-hero .container{padding-top:7rem}
.rg-kicker,.rg-section-kicker{display:inline-block;color:var(--rg-orange);font-size:.73rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.9rem}
.rg-hero h1{font-size:clamp(2.6rem,5.6vw,5.3rem);line-height:.98;font-weight:900;max-width:960px;text-transform:uppercase;letter-spacing:-.03em}
.rg-hero-copy{max-width:760px;font-size:1.08rem;color:#e7ebef;background:rgba(24,30,37,.35);padding:1rem 1.1rem;border-left:4px solid var(--rg-orange);backdrop-filter:blur(4px)}
.rg-hero-facts{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:1.2rem;font-size:.86rem;font-weight:700}
.rg-hero-facts i{color:var(--rg-orange);margin-right:.35rem}
.rg-hero-angle{position:absolute;right:-5%;bottom:-1px;width:44%;height:90px;background:var(--rg-orange);clip-path:polygon(12% 100%,100% 0,100% 100%)}
.rg-section{padding:95px 0}
.rg-section h2,.rg-brand-strip h2{color:#20272e}
.rg-section p{font-size: large;color:var(--rg-muted)}
.rg-brand-strip{padding:62px 0;border-top:1px solid #eef0f2;border-bottom:1px solid #eef0f2}
.rg-brand-strip h2{font-size:2rem}
.rg-brand-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem}
.rg-brand-grid span{display:grid;place-items:center;min-height:82px;background:#fff;border:1px solid var(--rg-line);font-weight:900;color:#4f5963;letter-spacing:.03em;transition:.25s}
.rg-brand-grid span:hover{color:var(--rg-orange-deep);border-color:var(--rg-orange);transform:translateY(-4px)}
.rg-slant-cta{position:relative;overflow:hidden;background:var(--rg-orange);padding:35px 0}
.rg-slant-cta:after{content:"";position:absolute;right:0;top:0;width:42%;height:100%;background:var(--rg-dark);clip-path:polygon(18% 0,100% 0,100% 100%,0 100%);opacity:.94}
.rg-slant-cta .container{z-index:1}
.rg-slant-cta h2{font-size:clamp(1.6rem,2.5vw,2.4rem);font-weight:900;margin:0}
.rg-heading-narrow{max-width:760px;margin-inline:auto}
.rg-services{background:#fff}
.rg-service-image{position:relative;min-height:600px;overflow:hidden}
.rg-service-image img{width:100%;height:100%;min-height:600px;object-fit:cover}
.rg-service-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.55))}
.rg-service-image-label{position:absolute;left:22px;bottom:22px;z-index:2;color:#fff}
.rg-service-image-label strong,.rg-service-image-label span{display:block}
.rg-service-image-label strong{font-size:1.25rem}
.rg-service-stack{display:grid;gap:16px}
.rg-service-card{display:grid;grid-template-columns:52px 54px 1fr;gap:1rem;align-items:start;padding:1.55rem;border:1px solid var(--rg-line);background:#fff;position:relative;overflow:hidden;transition:.25s}
.rg-service-card:hover{transform:translateX(6px);box-shadow:var(--rg-shadow)}
.rg-service-card>i{width:54px;height:54px;display:grid;place-items:center;background:#fff2db;color:var(--rg-orange-deep);font-size:1.35rem}
.rg-service-card h3{font-size:1.25rem;font-weight:800;margin:0 0 .4rem}
.rg-service-card p{font-size:.9rem;margin-bottom:.5rem}
.rg-service-card a{color:var(--rg-ink);font-weight:800;font-size:.82rem}
.rg-service-no{font-size:2rem;font-weight:900;color:#d9dde1}
.rg-service-card-dark{background:var(--rg-dark);color:#fff;border-color:var(--rg-dark)}
.rg-service-card-dark h3,.rg-service-card-dark a{color:#fff}
.rg-service-card-dark p{color:#dbe1e6}
.rg-service-card-accent{background:var(--rg-orange);border-color:var(--rg-orange)}
.rg-service-card-accent p{color:#3e3c37}
.rg-info-panel{background:linear-gradient(90deg,#f7f8f9 0 72%,#fff 72%)}
.rg-text-link{color:var(--rg-orange-deep);font-weight:900}
.rg-mini-panel{background:var(--rg-dark);color:#fff;padding:2rem;box-shadow:var(--rg-shadow);border-top:5px solid var(--rg-orange)}
.rg-mini-panel span{font-size:.72rem;font-weight:900;color:var(--rg-orange);letter-spacing:.12em}
.rg-mini-panel ul{margin:1.2rem 0 0;padding-left:1.1rem}
.rg-mini-panel li{padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
.rg-split-feature img{width:100%;height:500px;object-fit:cover;box-shadow:var(--rg-shadow)}
.rg-dark-feature{background:var(--rg-dark);color:#fff}
.rg-dark-feature h2{color:#fff}
.rg-dark-feature p{color:#d7dde2}
.rg-dark-photo{position:relative}
.rg-dark-photo img{width:100%;height:500px;object-fit:cover}

/* ROCKLIN — SPRING & CABLE SAFETY */

.rg-content-spring {
  background: var(--rg-dark);
}

.rg-content-spring .rg-dark-photo {
  position: relative;
  overflow: hidden;
}

/* Remove the old orange decorative frame */
.rg-content-spring .rg-dark-photo::after {
  content: none;
  display: none;
}

.rg-content-spring .rg-dark-photo img {
  display: block;
  width: 100%;
  height: 500px;
  object-fit: cover;
  object-position: center 43%;
}

.rg-content-spring h2 {
  max-width: 600px;
  font-weight: 500;
  line-height: 1.2;
  color: #fff;
}

.rg-content-spring p {
  color: #d7dde2;
  line-height: 1.65;
}

.rg-content-spring .rg-safety-badge {
  position: absolute;
  left: 20px;
  bottom: 20px;
  z-index: 2;
  max-width: calc(100% - 40px);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 15px;
  background: var(--rg-orange);
  color: #20262d;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.rg-content-spring .rg-safety-badge i {
  flex-shrink: 0;
  font-size: 14px;
}

@media (max-width: 991.98px) {
  .rg-content-spring .rg-dark-photo img {
    height: 450px;
  }
}

@media (max-width: 575.98px) {
  .rg-content-spring .rg-dark-photo img {
    height: 380px;
  }

  .rg-content-spring .rg-safety-badge {
    left: 12px;
    bottom: 12px;
    max-width: calc(100% - 24px);
    padding: 10px 12px;
    font-size: 11px;
  }
}

.rg-safety-badge{position:absolute;left:20px;bottom:20px;background:var(--rg-orange);color:#1f242a;padding:.9rem 1rem;font-weight:800;font-size:.8rem}

/* =====================================
   ROCKLIN — OPENER REPAIR SECTION
===================================== */

.rg-content-opener {
  background: #f8f9fa;
}

.rg-content-opener h2 {
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 15px;
}

.rg-content-opener > .container p {
  line-height: 1.7;
}

/* Feature items */
.rg-content-opener .rg-opener-features {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 25px;
  max-width: 550px;
}

.rg-content-opener .rg-opener-feature {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid #e5e8ec;
  transition: border-color .3s ease, transform .3s ease;
}

.rg-content-opener .rg-opener-feature i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  font-size: 22px;
  color: var(--rg-orange);
  flex-shrink: 0;
}

.rg-content-opener .rg-opener-feature span {
  font-size: 15px;
  font-weight: 500;
  color: #26313d;
}

.rg-content-opener .rg-opener-feature:hover {
  border-color: var(--rg-orange);
  transform: translateY(-3px);
}

/* Photo */
.rg-content-opener .rg-opener-photo {
  position: relative;
  width: 100%;
  height: 480px;
  overflow: hidden;
  background: #e9edf0;
  box-shadow: 0 15px 35px rgba(30,37,44,.08);
}

.rg-content-opener .rg-opener-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 36% center;
  transition: transform .6s ease;
}

.rg-content-opener .rg-opener-photo:hover img {
  transform: scale(1.035);
}

/* Bottom photo caption */
.rg-content-opener .rg-opener-photo-caption {
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 24px;
  background: rgba(47,54,63,.94);
  color: #fff;
}

.rg-content-opener .rg-opener-photo-caption > i {
  font-size: 26px;
  color: var(--rg-orange);
}

.rg-content-opener .rg-opener-photo-caption strong {
  display: block;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
}

.rg-content-opener .rg-opener-photo-caption span {
  display: block;
  margin-top: 4px;
  color: #d6dde5;
  font-size: 12px;
}

/* Responsive */
@media (max-width: 991.98px) {
  .rg-content-opener .rg-opener-photo {
    height: 440px;
  }
}

@media (max-width: 575.98px) {
  .rg-content-opener .rg-opener-features {
    gap: 9px;
  }

  .rg-content-opener .rg-opener-feature {
    gap: 9px;
    padding: 12px 10px;
  }

  .rg-content-opener .rg-opener-feature i {
    width: 24px;
    font-size: 19px;
  }

  .rg-content-opener .rg-opener-feature span {
    font-size: 13px;
  }

  .rg-content-opener .rg-opener-photo {
    height: 350px;
  }

  .rg-content-opener .rg-opener-photo-caption {
    padding: 15px;
  }
}

/* ROCKLIN — SERVICE HIGHLIGHTS */

.rg-stats {
  padding: 30px 0;
  color: #fff;
}

.rg-stats .rg-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 125px;
  padding: 15px 12px;
  border-right: 1px solid rgba(255,255,255,.16);
}

.rg-stats .row > div:last-child .rg-stat {
  border-right: 0;
}

.rg-stats .rg-stat i {
  display: block;
  margin: 0 0 12px;
  color: var(--rg-orange);
  font-size: 25px;
}

.rg-stats .rg-stat strong {
  display: block;
  color: #fff;
  font-size: clamp(15px, 1.25vw, 19px);
  font-weight: 600;
  line-height: 1.3;
}

.rg-stats .rg-stat span {
  margin-top: 7px;
  color: #d9e0e6;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}

@media (max-width: 991.98px) {
  .rg-stats .row > div:nth-child(2) .rg-stat {
    border-right: 0;
  }

  .rg-stats .row > div:nth-child(-n+2) .rg-stat {
    border-bottom: 1px solid rgba(255,255,255,.16);
  }
}

.rg-stats {
  position: relative;
  padding: 50px 0;
  color: #fff;

  background-image:
    linear-gradient(
      rgba(27, 34, 43, .66),
      rgba(27, 34, 43, .86)
    ),
    url("../images/rocklin-service-highlights-bg.webp");

  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

@media (max-width: 991.98px) {
  .rg-stats {
    background-attachment: scroll;
    background-position: center;
  }
}

.rg-before-after{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rg-before-after figure{margin:0;position:relative;overflow:hidden}
.rg-before-after img{width:100%;height:430px;object-fit:cover;transition:.45s}
.rg-before-after figure:hover img{transform:scale(1.04)}
.rg-before-after figcaption{position:absolute;left:14px;bottom:14px;background:var(--rg-dark);color:#fff;padding:.55rem .75rem;font-weight:900;font-size:.76rem;letter-spacing:.08em}
.rg-before-after figure:last-child figcaption{background:var(--rg-orange);color:#20262d}

/* ROCKLIN — OUR PROCESS */

.rg-process {
  background: #f6f7f8;
  padding: 95px 0;
}

.rg-process .rg-heading-narrow {
  max-width: 720px;
}

.rg-process .rg-process-card {
  position: relative;
  height: 100%;
  min-height: 265px;
  padding: 32px 25px 30px;
  background: #fff;
  border: 0;
  border-top: 4px solid var(--rg-orange);
  box-shadow: 0 12px 32px rgba(30,37,44,.06);
  transition: transform .3s ease, box-shadow .3s ease;
}

/* Step number */
.rg-process .rg-process-number {
  position: absolute;
  top: 17px;
  right: 18px;
  font-size: 32px;
  line-height: 1;
  font-weight: 700;
  color: #e9ecef;
}

.rg-process .rg-process-line-icon {
  display: block;
  width: 60px;
  height: 60px;
  color: #ed920b;
  stroke-width: 1.7;
  margin-bottom: 22px;
  transition: transform .3s ease;
}

.rg-process .rg-process-card:hover .rg-process-line-icon {
  transform: translateY(-4px);
}


.rg-process .rg-process-number {
  color: #d9dde2;
  font-size: 30px;
  line-height: 1;
  font-weight: 700;
}

.rg-process .rg-process-card h3 {
  margin-bottom: 12px;
}

.rg-process .rg-process-card p {
  line-height: 1.75;
}
/* Hover */
.rg-process .rg-process-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 20px 42px rgba(30,37,44,.12);
}

.rg-process .rg-process-card:hover .rg-process-line-icon {
  transform: translateY(-4px);
}

@media (max-width: 767.98px) {
  .rg-process {
    padding: 70px 0;
  }

  .rg-process .rg-process-card {
    min-height: 0;
    padding: 28px 22px;
  }

  .rg-process .rg-process-line-icon {
    width: 56px;
    height: 56px;
  }
}

/* OUR PROCESS — ICON FRAME */

.rg-process .rg-process-icon-frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  margin-bottom: 22px;
border: 1px solid rgba(184, 167, 141, 0.3);
  background: #ed920b12;
  transition: border-color .3s ease, transform .3s ease;
}

.rg-process .rg-process-line-icon {
  display: block;
  width: 46px;
  height: 46px;
  margin: 0;
  color: #ed920b;
  stroke-width: 1.8;
  transition: transform .3s ease;
}

.rg-process .rg-process-card:hover .rg-process-icon-frame {
  border-color: #ed920b;
  transform: translateY(-3px);
}

.rg-process .rg-process-card:hover .rg-process-line-icon {
  transform: none;
}

@media (max-width: 575.98px) {
  .rg-process .rg-process-icon-frame {
    width: 68px;
    height: 68px;
  }

  .rg-process .rg-process-line-icon {
    width: 42px;
    height: 42px;
  }
}

.rg-coupons{background:var(--rg-orange)}
.rg-coupons h2,.rg-coupons p{color:#242a31}
.rg-coupon{background:#fff;padding:1.2rem 1.3rem;min-height:150px;border:2px dashed #d9dde1;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.rg-coupon:after{content:"";position:absolute;width:54px;height:54px;border-radius:50%;background:var(--rg-orange);right:-28px;top:50%;transform:translateY(-50%)}
.rg-coupon small{font-weight:900;color:#7a838d;letter-spacing:.12em}
.rg-coupon strong{font-size:2rem;color:var(--rg-dark);line-height:1.1}
.rg-coupon span{font-weight:700}
.rg-coupon-featured{background:var(--rg-dark);color:#fff;border-color:rgba(255,255,255,.3)}
.rg-coupon-featured strong{color:var(--rg-orange)}
.rg-city-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:1.5rem}
.rg-city-grid div{padding:1rem;border:1px solid var(--rg-line);background:#fafbfc}
.rg-city-grid strong,.rg-city-grid span{display:block}
.rg-city-grid strong{font-size:1rem}
.rg-city-grid span{font-size:.82rem;color:var(--rg-muted)}
.rg-area-card{height:100%;min-height:420px;background:var(--rg-dark);color:#fff;padding:2.2rem;display:flex;flex-direction:column;justify-content:center;border-bottom:8px solid var(--rg-orange)}
.rg-area-card i{font-size:2rem;color:var(--rg-orange);margin-bottom:1rem}
.rg-area-card h3{font-size:1.6rem;font-weight:900}
.rg-area-card a{color:#fff;font-weight:800;margin:.2rem 0}
.rg-area-card span{margin-top:.7rem;color:#d4dbe1}
.rg-considerations{background:#f4f5f6}
.rg-list-panel{background:#fff;border-left:5px solid var(--rg-orange);padding:1.4rem 1.7rem;box-shadow:0 10px 28px rgba(30,38,45,.05)}
.rg-list-panel p{margin:0;padding:.75rem 0;border-bottom:1px solid #edf0f2}
.rg-list-panel p:last-child{border:0}

.rg-blog{background:#fff}
.rg-blog-card{background:#fff;height:100%;box-shadow:0 12px 30px rgba(34,41,47,.06);overflow:hidden;transition:.25s}
.rg-blog-card:hover{transform:translateY(-6px);box-shadow:var(--rg-shadow)}
.rg-blog-card img{width:100%;height:230px;object-fit:cover}
.rg-blog-card>div{padding:1.25rem}
.rg-blog-card span{font-size:.7rem;font-weight:900;color:var(--rg-orange-deep);letter-spacing:.12em}
.rg-blog-card h3{font-size:1.06rem;font-weight:900;margin:.45rem 0 .8rem}
.rg-blog-card a{color:var(--rg-dark);font-weight:800;font-size:.82rem}

/* ROCKLIN — GARAGE DOOR TYPES */

.rg-blog .rg-blog-card {
  height: 100%;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}

.rg-blog .rg-blog-card > img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center;
  transition: transform .55s ease;
}

.rg-blog .rg-blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(30,37,44,.12);
}

.rg-blog .rg-blog-card:hover > img {
  transform: scale(1.045);
}

.rg-blog .rg-blog-card h3 {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.4;
}

.rg-blog .rg-blog-card p {
  font-size: 15px;
  line-height: 1.7;
}

.rg-blog .rg-blog-card a {
  position: relative;
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.rg-blog .rg-blog-card a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 0;
  height: 2px;
  background: var(--rg-orange);
  transition: width .3s ease;
}

.rg-blog .rg-blog-card a:hover::after {
  width: 100%;
}

@media (max-width: 767.98px) {
  .rg-blog .rg-blog-card > img {
    height: 240px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rg-blog .rg-blog-card,
  .rg-blog .rg-blog-card > img,
  .rg-blog .rg-blog-card a::after {
    transition: none;
  }
}

/* Garage Door Types — White Background */

.rg-blog {
  background: #ffffff;
}

.rg-blog .rg-blog-card {
  background: #ffffff;
  border: 1px solid #e2e6ea;
  box-shadow: 0 5px 20px rgba(30, 37, 44, .045);
  transition: transform .35s ease,
              box-shadow .35s ease,
              border-color .35s ease;
}

.rg-blog .rg-blog-card:hover {
  transform: translateY(-5px);
  border-color: #f0aa43;
  box-shadow: 0 15px 35px rgba(30, 37, 44, .10);
}

/* Garage Door Types — Text Link */

.rg-blog .rg-blog-card .rg-door-types-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  color: #27313c;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: color .3s ease;
}

.rg-blog .rg-blog-card .rg-door-types-link i {
  color: var(--rg-orange);
  font-size: 14px;
  transition: transform .3s ease;
}

.rg-blog .rg-blog-card .rg-door-types-link:hover {
  color: #df8500;
}

.rg-blog .rg-blog-card .rg-door-types-link:hover i {
  transform: translate(3px, -3px);
}

/* Remove the old underline animation */
.rg-blog .rg-blog-card .rg-door-types-link::after {
  content: none;
}

.rg-contact-list{display:grid;gap:.8rem;margin-top:1.5rem}
.rg-contact-list>a,.rg-contact-list>div{display:flex;gap:1rem;align-items:center;color:var(--rg-ink)}
.rg-contact-list i{width:44px;height:44px;display:grid;place-items:center;background:var(--rg-orange);color:#1e252c}
.rg-contact-list small,.rg-contact-list span{display:block}
.rg-contact-list small{font-size:.65rem;font-weight:900;color:#8a929a;letter-spacing:.11em}
.rg-form{background:#f5f6f8;padding:2rem}
.rg-form .form-control,.rg-form .form-select{border:1px solid #dce1e5;border-radius:0;min-height:50px;background:#fff}
.rg-form textarea.form-control{min-height:130px}
.rg-form label{font-size:.78rem;font-weight:900;letter-spacing:.05em}
.rg-final-cta span{font-size:.72rem;font-weight:900;letter-spacing:.14em}
.rg-final-cta h2{font-size:clamp(2rem,3vw,3.2rem);margin:.25rem 0}
.rg-final-cta p{margin:0;color:#3e4246}
.rg-footer{background:#252c34;color:#cfd5da;padding:70px 0 24px}
.rg-footer h2{font-size:.95rem;color:#fff;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}
.rg-footer p{color:#aeb7bf}
.rg-footer a{display:block;color:#cfd5da;margin:.3rem 0}
.rg-footer a:hover{color:var(--rg-orange)}
.rg-brand-footer{margin-bottom:1.2rem}
.rg-social{display:flex;gap:.5rem}
.rg-social a{width:36px;height:36px;display:grid;place-items:center;border:1px solid #59616a}
.rg-footer-bottom{border-top:1px solid #3a424b;margin-top:2.5rem;padding-top:1.1rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:#8f99a2}
@media (min-width:1200px){.rg-navbar .dropdown:hover>.dropdown-menu{display:block;margin-top:0}
.rg-navbar .dropdown-menu{transition:.15s}
.rg-header+main{padding-top:0}}
@media (max-width:1199.98px){.rg-navbar .navbar-collapse{padding:1rem 0}
.rg-btn-call{margin-top:.7rem}
.rg-navbar .dropdown-menu{background:#222931}
.rg-slant-cta:after{display:none}}
@media (max-width:991.98px){.rg-hero{min-height:700px}
.rg-hero .container{padding-top:9rem}
.rg-brand-grid{grid-template-columns:repeat(3,1fr)}
.rg-service-image,.rg-service-image img{min-height:460px}
.rg-info-panel{background:#f7f8f9}
.rg-stat{border-bottom:1px solid rgba(255,255,255,.12)}
.rg-before-after img{height:360px}}
@media (max-width:767.98px){.rg-topbar .container{justify-content:center!important}
.rg-topbar a{display:none}
.rg-section{padding:72px 0}
.rg-hero{min-height:760px}
.rg-hero h1{font-size:2.55rem}
.rg-hero-copy{font-size:.96rem}
.rg-hero-facts{gap:.65rem 1rem}
.rg-brand-grid{grid-template-columns:repeat(2,1fr)}
.rg-service-card{grid-template-columns:42px 1fr}
.rg-service-card>i{grid-column:1}
.rg-service-card>div:last-child{grid-column:1/-1}
.rg-city-grid{grid-template-columns:1fr}
.rg-before-after{grid-template-columns:1fr}
.rg-before-after img{height:320px}
.rg-final-cta{text-align:center}
.rg-footer-bottom{display:block}
.rg-footer-bottom span{display:block;margin:.3rem 0}}
@media (max-width:480px){.rg-hero h1{font-size:2.1rem}
.rg-hero .rg-btn{width:100%}
.rg-brand-grid{grid-template-columns:1fr 1fr}
.rg-brand-grid span{font-size:.78rem}
.rg-service-card{padding:1.2rem}
.rg-form{padding:1.25rem}}
:root{--rg-orange:#ffa726;--rg-orange-deep:#ee971b;--rg-dark:#373d46;--rg-dark-2:#303640}
body{font-family:"Segoe UI",Arial,Helvetica,sans-serif;line-height:1.72}
.rg-section h2,.rg-brand-strip h2{font-size:clamp(1.75rem,2.75vw,2.85rem);font-weight:500;line-height:1.22;letter-spacing:-.025em}
.rg-section h3{font-weight:600}
.rg-topbar{position:relative;background:#30363f;padding:.72rem 0;font-weight:500}
.rg-topbar::before{content:"";position:absolute;height:5px;left:0;top:0;width:100%;background:#ffa726}
.rg-navbar{background:#3a4049;backdrop-filter:none;padding:0;box-shadow:none}
.rg-navbar .container{min-height:82px}
.rg-brand{position:relative;padding:1rem 2.4rem 1rem 1.4rem;min-height:82px;margin-right:1rem;color:#27313b!important;z-index:1}
.rg-brand:before{content:"";position:absolute;inset:0 -9px 0 -45vw;background:var(--rg-orange);clip-path:polygon(0 0,98.6% 0,100% 100%,0 100%);z-index:-1}
.rg-brand-mark{background:transparent;width:39px;height:39px;clip-path:none}
.rg-brand strong{font-size:1.22rem;letter-spacing:.07em}
.rg-brand small{color:#2c333b;font-size:.68rem}
.rg-navbar .nav-link{position:relative;font-weight:500;font-size:.83rem;text-transform:uppercase;padding:1.8rem .9rem!important;z-index:1}
.rg-navbar .nav-link.active{color:#29323a!important}
.rg-navbar .nav-link.active:before{content:"";position:absolute;inset:0 -8px;z-index:-1;background:var(--rg-orange);clip-path:polygon(0 0,83% 0,100% 100%,17% 100%)}
.rg-navbar .dropdown-menu{min-width:225px}
.rg-scroll-progress{position:fixed;top:0;left:0;width:0;height:5px;background:#fff7d9;z-index:9999;pointer-events:none;box-shadow:0 0 0 1px #fff7d9}
.rg-hero-template{min-height:100svh;background-size:cover;background-position:center;background-attachment:fixed}
.rg-hero-template .container{padding-top:8rem}
.rg-hero-template h1{margin-left:auto;margin-right:auto;max-width:1060px;font-size:clamp(2.25rem,4.15vw,4.4rem);font-weight:800;line-height:1.12;letter-spacing:-.018em}
.rg-hero-template .rg-hero-copy{margin-inline:auto;border:0;text-align:center;background:transparent;backdrop-filter:none;padding:.4rem 0;font-size:1.05rem}
.rg-hero-template .rg-hero-facts{justify-content:center}
.rg-hero-template .d-flex.gap-3{justify-content:center}
.rg-hero-template .rg-hero-angle{display:none}
.rg-brand-strip{background:#fff;border:0}
.rg-brand-strip h2{font-weight:400}

/* Garage Door Brands Marquee */
.rg-brand-marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-top: 1.5rem;
}

.rg-brand-track {
  display: flex;
  align-items: center;
  gap: 1.8rem;
  width: max-content;
  animation: rgBrandMove 38s linear infinite;
  will-change: transform;
}

.rg-brand-track img {
  display: block;
  flex: 0 0 auto;
  width: 125px;
  height: 58px;
  padding: 5px;
  object-fit: contain;
  image-rendering: auto;
  filter: none;
  opacity: 1;
  transition: transform .3s ease;
  opacity: .7;
}

.rg-brand-track img:hover {
  transform: translateY(-4px);
  opacity: 1;
}

.rg-brand-marquee:hover .rg-brand-track {
  animation-play-state: paused;
}

@keyframes rgBrandMove {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(calc(-50% - .9rem));
  }
}

@media (prefers-reduced-motion: reduce) {
  .rg-brand-track {
    animation: none;
  }
}

/* ===========================
   ROCKLIN — SLIM CTA
=========================== */

/* ROCKLIN — SLIM CTA */
.rg-cta-template {
  position: relative;
  padding: 0;
  background: var(--rg-orange);
  overflow: hidden;
}

.rg-cta-template::after {
  display: none;
}

.rg-cta-template .row {
  min-height: 285px;
}

.rg-cta-template .rg-cta-text-col {
  position: relative;
  z-index: 2;
  padding: 30px 25px 30px 0;
}

.rg-cta-template h2 {
  margin: 0 0 12px;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 500;
  line-height: 1.2;
}

.rg-cta-template .rg-btn {
  min-height: 39px;
  padding: 8px 17px;
}

/* Image extends to viewport edge */
.rg-cta-template .rg-cta-image-col {
  position: relative;
  align-self: stretch;
}

.rg-cta-template .rg-cta-image {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -45px;
  width: calc(
    100% + 45px + (100vw - 100%) / 2
  );

  background-image:
    linear-gradient(
      rgba(29, 35, 43, .15),
      rgba(29, 35, 43, .15)
    ),
    url("../images/rocklin-cta-broken-garage-door.webp");

  background-size: cover;
  background-position: center 45%;
  background-attachment: fixed;

  clip-path: polygon(
    60px 0,
    100% 0,
    100% 100%,
    0 100%
  );
}

/* Orange accent line on the right edge */
.rg-cta-template::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 12px;
  background: var(--rg-orange);
  z-index: 5;
  pointer-events: none;
}

@media (max-width: 991.98px) {
  .rg-cta-template .rg-cta-text-col {
    padding: 28px 12px;
  }

  .rg-cta-template .rg-cta-image-col {
    min-height: 170px;
  }

  .rg-cta-template .rg-cta-image {
    position: absolute;
    inset: 0;
    width: 100%;
    background-attachment: scroll;
    clip-path: none;
  }
}


.rg-services-template .rg-service-card{grid-template-columns:64px 1fr;min-height:0;align-content:center;padding:1.5rem 1.3rem}
.rg-services-template .rg-service-no{display:none}
.rg-services-template .rg-service-card>i{width:62px;height:70px;font-size:2.25rem;background:transparent;color:var(--rg-orange-deep)}
.rg-services-template .rg-service-card-dark>i{color:#fff}
.rg-services-template .rg-service-card-accent>i{color:#2c333b}
.rg-services-template .rg-service-card h3{font-size:1.22rem;font-weight:500}
.rg-services-template .rg-service-stack{height:100%;grid-template-rows:repeat(3,minmax(0,1fr))}
.rg-services-template .rg-service-image,.rg-services-template .rg-service-image img{min-height:625px}
.rg-services-template .rg-service-card p{line-height:1.52}
.rg-services-template .rg-service-card a{font-weight:600}

/* ROCKLIN — GARAGE DOOR SERVICES */

.rg-services-template .rg-heading-narrow {
  max-width: 800px;
}

.rg-services-template .rg-heading-narrow p {
  max-width: 720px;
  margin: 0 auto;
  font-size: 16.5px;
  line-height: 1.7;
}

/* Image matches cards height */
.rg-services-template .rg-service-image {
  position: relative;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.rg-services-template .rg-service-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center 48%;
}

.rg-services-template .rg-service-image-label {
  position: absolute;
  left: 22px;
  bottom: 22px;
  z-index: 2;
}

/* Three equally sized cards */
.rg-services-template .rg-service-stack {
  display: grid;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 15px;
  height: 100%;
}

.rg-services-template .rg-service-card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 180px;
  padding: 25px 24px;
  transition: transform .3s ease, box-shadow .3s ease;
}

/* Outline SVG icons */
.rg-services-template .rg-service-line-icon {
  display: block;
  width: 62px;
  height: 62px;
  color: var(--rg-orange-deep);
  transition: transform .3s ease;
}

.rg-services-template .rg-service-card-dark .rg-service-line-icon {
  color: #ffffff;
}

.rg-services-template .rg-service-card-accent .rg-service-line-icon {
  color: #303640;
}

/* Typography */
.rg-services-template .rg-service-card h3 {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.35;
  margin: 0 0 9px;
}

.rg-services-template .rg-service-card p {
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0 0 12px;
}

.rg-services-template .rg-service-card a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 700;
}

.rg-services-template .rg-service-card a i {
  transition: transform .25s ease;
}

/* Hover */
.rg-services-template .rg-service-card:hover {
  transform: translateX(5px);
  box-shadow: 0 16px 32px rgba(30, 37, 44, .12);
}

.rg-services-template .rg-service-card:hover .rg-service-line-icon {
  transform: translateY(-4px);
}

.rg-services-template .rg-service-card:hover a i {
  transform: translateX(4px);
}

/* Responsive */
@media (max-width: 991.98px) {
  .rg-services-template .rg-service-image {
    height: 460px;
  }

  .rg-services-template .rg-service-stack {
    grid-template-rows: auto;
  }
}

@media (max-width: 575.98px) {
  .rg-services-template .rg-service-card {
    grid-template-columns: 54px minmax(0, 1fr);
    min-height: 0;
    gap: 14px;
    padding: 22px 18px;
  }

  .rg-services-template .rg-service-line-icon {
    width: 50px;
    height: 50px;
  }

  .rg-services-template .rg-service-card p {
    font-size: 14px;
  }

  .rg-services-template .rg-service-image {
    height: 390px;
  }
}

/* ROCKLIN — PANELS & WEATHER SEALS */

.rg-content-panels {
  background: #fff;
}

.rg-content-panels h2 {
  font-weight: 500;
  line-height: 1.2;
}

.rg-content-panels p {
  line-height: 1.7;
}

/* Photo composition */
.rg-content-panels .rg-panels-visual {
  position: relative;
  width: 100%;
  height: 540px;
  overflow: hidden;
  background: #e8eaec;
}

.rg-content-panels .rg-panels-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .6s ease;
}

.rg-content-panels .rg-panels-visual:hover img {
  transform: scale(1.035);
}

/* Bottom identification */
.rg-content-panels .rg-panels-photo-tag {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 20px;
  background: #373d46;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
}

.rg-content-panels .rg-panels-photo-tag i {
  color: var(--rg-orange);
  font-size: 17px;
}

/* Technical labels */
.rg-content-panels .rg-panels-label {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 13px;
  background: rgba(255,255,255,.94);
  border-left: 3px solid var(--rg-orange);
  box-shadow: 0 8px 25px rgba(0,0,0,.10);
  color: #25303b;
  font-size: 12px;
  transition: transform .3s ease;
}

.rg-content-panels .rg-panels-label-top {
  top: 26%;
  right: 18px;
}

.rg-content-panels .rg-panels-label-bottom {
  bottom: 24%;
  right: 18px;
}

.rg-content-panels .rg-panels-label-line {
  width: 20px;
  height: 1px;
  background: var(--rg-orange);
}

.rg-content-panels .rg-panels-visual:hover .rg-panels-label {
  transform: translateX(-5px);
}

@media (max-width: 991.98px) {
  .rg-content-panels .rg-panels-visual {
    height: 450px;
  }
}

@media (max-width: 575.98px) {
  .rg-content-panels .rg-panels-visual {
    height: 350px;
  }

  .rg-content-panels .rg-panels-label {
    font-size: 10px;
    padding: 7px 9px;
  }

  .rg-content-panels .rg-panels-photo-tag {
    font-size: 10px;
    padding: 12px;
  }
}

.rg-split-feature .row,.rg-dark-feature .row,.rg-panels .row{align-items:center}
.rg-info-panel .rg-mini-panel,.rg-opener-visual,.rg-dark-photo{position:relative}
.rg-info-panel .rg-mini-panel:after{content:"";position:absolute;top:25px;right:20px;width:75px;height:75px;border:1px solid rgba(255,167,38,.45);border-radius:50%}
.rg-dark-photo:after{content:"";position:absolute;right:-12px;top:25px;border:2px solid var(--rg-orange);width:140px;height:140px;pointer-events:none}
.rg-coupons-template{background:#f8f8f8}
.rg-coupons-template .rg-coupon{border:1px solid #e7e7e7;box-shadow:0 12px 20px rgba(24,31,38,.05);background:#fff;min-height:170px;padding:1.4rem 1.5rem;border-left:5px solid var(--rg-orange)}
.rg-coupons-template .rg-coupon::after{background:#f8f8f8;width:30px;height:30px;right:-15px;border:1px solid #e7e7e7}
.rg-coupons-template .rg-coupon-featured{background:#303640;border-color:#303640;border-left-color:var(--rg-orange);color:#fff}
.rg-coupons-template .rg-coupon-featured strong{color:#ffa726}
.rg-coupons-template .rg-coupon strong{font-weight:600}

/* =====================================
   ROCKLIN — SERVICE AREA & MAP
===================================== */

.rg-service-area-template {
  position: relative;
  background:#f4f5f6;
  overflow: hidden;
}

.rg-service-area-template h2 {
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 18px;
}

.rg-service-area-template p {
  font-size: 16px;
  line-height: 1.75;
  margin-bottom: 28px;
}

/* Locations list */
.rg-service-area-template .rg-area-locations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 22px;
}

.rg-service-area-template .rg-area-location {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  padding: 16px 0;
  border-bottom: 1px solid #e5e8eb;
  transition: border-color .3s ease;
  margin-right: 30px;
}

.rg-service-area-template .rg-area-location > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.rg-service-area-template .rg-area-location-name {
  color: #252e39;
  font-size: 16px;
  font-weight: 600;
}

.rg-service-area-template .rg-area-location-zip {
  color: #687585;
  font-size: 13px;
  letter-spacing: .3px;
}

.rg-service-area-template .rg-area-location > i {
  color: #ed920b;
  font-size: 17px;
  opacity: .65;
  transition: transform .3s ease, opacity .3s ease;
}

.rg-service-area-template .rg-area-location:hover {
  border-color: #ed920b;
}

.rg-service-area-template .rg-area-location:hover > i {
  transform: translateY(-3px);
  opacity: 1;
}

/* Map block */
.rg-service-area-template .rg-area-map-wrap {
  background: #fff;
  border: 1px solid #e5e8eb;
  border-bottom: 4px solid #ffa726;
  box-shadow: 0 18px 45px rgba(30, 37, 44, .09);
  overflow: hidden;
}

.rg-service-area-template .rg-area-map-top {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 20px 24px;
  background: #343b44;
  color: #fff;
}

.rg-service-area-template .rg-area-map-top > i {
  color: #ffa726;
  font-size: 30px;
}

.rg-service-area-template .rg-area-map-top strong {
  display: block;
  font-size: 17px;
  font-weight: 600;
}

.rg-service-area-template .rg-area-map-top span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: #c6cdd5;
}

.rg-service-area-template .rg-area-map-frame {
  display: block;
  width: 100%;
  height: 420px;
  border: 0;
  background: #eef0f1;
}

.rg-service-area-template .rg-area-map-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 16px 24px;
}

.rg-service-area-template .rg-area-map-bottom span {
  font-size: 13px;
  color: #53606c;
}

.rg-service-area-template .rg-area-map-bottom span i {
  color: #ed920b;
  margin-right: 5px;
}

.rg-service-area-template .rg-area-map-bottom a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #d78400;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: color .25s ease;
}

.rg-service-area-template .rg-area-map-bottom a:hover {
  color: #343b44;
}

/* Responsive */
@media (max-width: 991.98px) {
  .rg-service-area-template .rg-area-map-frame {
    height: 380px;
  }
}

@media (max-width: 575.98px) {
  .rg-service-area-template .rg-area-locations {
    grid-template-columns: 1fr;
  }

  .rg-service-area-template .rg-area-map-top,
  .rg-service-area-template .rg-area-map-bottom {
    padding: 16px;
  }

  .rg-service-area-template .rg-area-map-frame {
    height: 330px;
  }

  .rg-service-area-template .rg-area-map-top strong {
    font-size: 15px;
  }
}
.rg-considerations-template{background:#f5f6f7}
.rg-considerations-template .rg-list-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;background:transparent;box-shadow:none;padding:0;border:0}
.rg-considerations-template .rg-list-panel p{display:flex;align-items:center;border:1px solid #e2e6e9;background:#fff;padding:1.25rem;margin:0;min-height:112px;line-height:1.6}
.rg-considerations-template .rg-list-panel p:before{content:"✓";margin-right:.9rem;color:var(--rg-orange-deep);font-size:1.3rem;font-weight:900}

/* ==========================================
   ROCKLIN — DARK FAQ SECTION
========================================== */

.rg-faq.rg-faq-template.rg-faq-polished {
  position: relative;
  background: #373d46;
  padding: 100px 0;
  overflow: hidden;
}

/* Left content */
.rg-faq-polished .rg-faq-intro {
  position: relative;
  max-width: 450px;
}

.rg-faq-polished .rg-section-kicker {
  color: #ffa726;
}

.rg-faq-polished .rg-faq-intro h2 {
  color: #ffffff;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 20px;
}

.rg-faq-polished .rg-faq-intro p {
  color: #d4dbe2;
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 28px;
}

/* Minimal call link */
.rg-faq-polished .rg-faq-call-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,167,38,.6);
  transition: color .3s ease, border-color .3s ease;
}

.rg-faq-polished .rg-faq-call-link i {
  color: #ffa726;
  font-size: 15px;
}

.rg-faq-polished .rg-faq-call-link i:last-child {
  margin-left: 8px;
  transition: transform .3s ease;
}

.rg-faq-polished .rg-faq-call-link:hover {
  color: #ffa726;
  border-color: #ffa726;
}

.rg-faq-polished .rg-faq-call-link:hover i:last-child {
  transform: translateX(5px);
}

/* Accordion */
.rg-faq-polished .rg-faq-accordion {
  display: grid;
  gap: 12px;
}

.rg-faq-polished .rg-faq-accordion .accordion-item {
  background: #ffffff;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 0;
  margin: 0;
  overflow: hidden;
  box-shadow: none;
  transition: border-color .3s ease, transform .3s ease;
}

.rg-faq-polished .rg-faq-accordion .accordion-item:hover {
  border-color: #ffa726;
  transform: translateY(-2px);
}

/* Questions */
.rg-faq-polished .rg-faq-accordion .accordion-button {
  position: relative;
  min-height: 72px;
  padding: 22px 25px;
  background: #ffffff;
  color: #26303a;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: background-color .3s ease, color .3s ease;
}

.rg-faq-polished .rg-faq-accordion .accordion-button:not(.collapsed) {
  background: #fff5e6;
  color: #232b34;
}

.rg-faq-polished .rg-faq-accordion .accordion-button:focus-visible {
  outline: 2px solid #ffa726;
  outline-offset: -3px;
}

/* Bootstrap arrow */
.rg-faq-polished .rg-faq-accordion .accordion-button::after {
  flex-shrink: 0;
  margin-left: 18px;
  background-size: 17px;
  transition: transform .3s ease;
}

/* Open answer */
.rg-faq-polished .rg-faq-accordion .accordion-body {
  padding: 0 25px 23px;
  background: #ffffff;
  color: #626d79;
  font-size: 15px;
  line-height: 1.85;
}

.rg-faq-polished .rg-faq-accordion .accordion-collapse.show .accordion-body {
  border-top: 1px solid #f0ece6;
  padding-top: 18px;
}

/* Responsive */
@media (max-width: 991.98px) {
  .rg-faq.rg-faq-template.rg-faq-polished {
    padding: 75px 0;
  }

  .rg-faq-polished .rg-faq-intro {
    max-width: 680px;
  }
}

@media (max-width: 575.98px) {
  .rg-faq.rg-faq-template.rg-faq-polished {
    padding: 65px 0;
  }

  .rg-faq-polished .rg-faq-accordion .accordion-button {
    min-height: 65px;
    padding: 18px;
    font-size: 14px;
  }

  .rg-faq-polished .rg-faq-accordion .accordion-body {
    padding: 0 18px 20px;
    font-size: 14px;
  }

  .rg-faq-polished .rg-faq-call-link {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rg-faq-polished .rg-faq-accordion .accordion-item,
  .rg-faq-polished .rg-faq-call-link,
  .rg-faq-polished .rg-faq-call-link i {
    transition: none;
  }
}

/* FAQ — Orange Call Button */

.rg-faq-polished .rg-faq-call-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 50px;
  padding: 13px 22px;
  background: var(--rg-orange);
  border: 1px solid var(--rg-orange);
  color: #20272e;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background .3s ease,
              color .3s ease,
              transform .3s ease;
}

.rg-faq-polished .rg-faq-call-link i {
  color: inherit;
  font-size: 14px;
}

.rg-faq-polished .rg-faq-call-link i:last-child {
  margin-left: 8px;
  transition: transform .3s ease;
}

.rg-faq-polished .rg-faq-call-link:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: #20272e;
  transform: translateY(-3px);
}

.rg-faq-polished .rg-faq-call-link:hover i:last-child {
  transform: translateX(5px);
}

.rg-blog .rg-blog-card h3{font-weight:600}
.rg-blog .rg-blog-card p{font-size:.88rem}
.rg-final-cta{background:#ffa726;padding:42px 0}
.rg-final-cta h2{font-weight:500}
.rg-contact{background:#f8f8f8}

/* Contact — Business Name */

.rg-contact .rg-contact-business strong {
  display: block;
  color: #20272e;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
}

.rg-copyright-only{background:#303640;padding:18px 0;color:#fff}
.rg-copyright-only .rg-footer-bottom{margin:0;border:0;padding:0}
.rg-copyright-only .rg-footer-bottom span{color:#d8dee5}
@media (max-width:1199.98px){.rg-brand:before{right:0}
.rg-navbar .nav-link{padding:.8rem 1rem!important}
.rg-navbar .nav-link.active:before{clip-path:none;inset:0}
.rg-services-template .rg-service-stack{grid-template-rows:repeat(3,minmax(0,1fr))}}
@media (max-width:991.98px){.rg-hero-template{background-attachment:scroll}
.rg-services-template .rg-service-stack{grid-template-rows:auto}
.rg-service-area-template{background:#f6f7f8}}
@media (max-width:767.98px){.rg-hero-template h1{font-size:clamp(2rem,8vw,3.2rem)}
.rg-hero-template .container{padding-top:10rem}
.rg-brand{min-height:65px}
.rg-considerations-template .rg-list-panel{grid-template-columns:1fr}
.rg-services-template .rg-service-image,.rg-services-template .rg-service-image img{min-height:450px}
.rg-services-template .rg-service-card{grid-template-columns:58px 1fr}
.rg-services-template .rg-service-card>div:last-child{grid-column:auto}}
@media (prefers-reduced-motion:reduce){.rg-brand-track{animation:none}
.rg-hero-template{background-attachment:scroll}}
.rg-scroll-line{position:fixed;left:0;top:0;height:4px;width:100%;background:#252c34;z-index:1090;pointer-events:none}
.rg-scroll-line#rgScrollBar{background:var(--rg-orange)}
.rg-navbar .nav-link.active:before,.rg-navbar .nav-link:hover:before,.rg-navbar .nav-link:focus:before{clip-path:polygon(12% 0,100% 0,88% 100%,0 100%)!important;border-radius:0!important}
.rg-hero-template .rg-hero-overlay{background:linear-gradient(90deg,rgba(27,33,40,.62),rgba(27,33,40,.42))}
.rg-hero-template .rg-kicker{letter-spacing:.21em}
.rg-brand-track img{width:125px!important;height:58px!important;object-fit:contain!important;image-rendering:auto;filter:none!important;padding:5px!important}

/* =====================================
   ROCKLIN - DOOR CONDITION ASSESSMENT
===================================== */

.rg-content-concerns {
  background: #f7f8fa;
}

.rg-content-concerns h2 {
  max-width: 680px;
}

.rg-content-concerns .rg-text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 8px;
  font-weight: 700;
}

.rg-content-concerns .rg-text-link i {
  transition: transform .25s ease;
}

.rg-content-concerns .rg-text-link:hover i {
  transform: translateX(5px);
}

/* Main assessment board */
.rg-content-concerns .rg-concern-board {
  background: #343b44;
  border-top: 5px solid var(--rg-orange);
  box-shadow: 0 18px 45px rgba(30, 37, 44, .14);
  padding: 28px;
  color: #fff;
}

/* Board header */
.rg-content-concerns .rg-concern-board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding-bottom: 20px;
  margin-bottom: 7px;
  border-bottom: 1px solid rgba(255,255,255,.13);
}

.rg-content-concerns .rg-concern-eyebrow {
  display: block;
  color: var(--rg-orange);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.5px;
  margin-bottom: 6px;
}

.rg-content-concerns .rg-concern-board h3 {
  color: #fff;
  font-size: 21px;
  font-weight: 500;
  margin: 0;
}

.rg-content-concerns .rg-concern-door-art {
  width: 65px;
  height: 65px;
  flex: 0 0 65px;
  color: var(--rg-orange);
}

/* Assessment rows */
.rg-content-concerns .rg-concern-items {
  display: grid;
}

.rg-content-concerns .rg-concern-item {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 15px;
  align-items: center;
  padding: 15px 10px;
  border-bottom: 1px solid rgba(255,255,255,.11);
  transition: background .25s ease, padding .25s ease;
}

.rg-content-concerns .rg-concern-item:last-child {
  border-bottom: 0;
}

.rg-content-concerns .rg-concern-item > svg {
  width: 42px;
  height: 42px;
  color: var(--rg-orange);
  transition: transform .3s ease;
}


/* Concerns section refinements */
.rg-content-concerns .rg-concern-item h4 {
  font-size: 16px;
}

.rg-content-concerns .rg-concern-item p {
  font-size: 14px;
  line-height: 1.55;
}

.rg-content-concerns .rg-concern-item {
  padding-top: 16px;
  padding-bottom: 16px;
}


/* Hover */
.rg-content-concerns .rg-concern-item:hover {
  background: rgba(255,255,255,.065);
  padding-left: 16px;
}

.rg-content-concerns .rg-concern-item:hover > svg {
  transform: translateY(-3px);
}

/* Responsive */
@media (max-width: 575.98px) {
  .rg-content-concerns .rg-concern-board {
    padding: 20px 16px;
  }

  .rg-content-concerns .rg-concern-item {
    grid-template-columns: 38px minmax(0,1fr);
    gap: 12px;
    padding: 13px 5px;
  }

  .rg-content-concerns .rg-concern-item > svg {
    width: 36px;
    height: 36px;
  }

  .rg-content-concerns .rg-concern-door-art {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }
}

.rg-process{padding-top:110px;padding-bottom:115px}
.rg-process .rg-process-card i{display:block;margin:0 0 18px}

/* BEFORE & AFTER — CAPTIONS */

.rg-before-showcase .rg-showcase-caption,
.rg-before-showcase .rg-showcase-caption-orange {
  background: #ffffff;
  color: #202b36;
  text-align: center;
  transition: background-color .35s ease, color .35s ease;
}

.rg-before-showcase .rg-showcase-caption h3 {
  color: #202b36;
  transition: color .35s ease;
}

.rg-before-showcase .rg-showcase-caption p {
  color: #626d78;
  transition: color .35s ease;
}

/* Orange caption only on hover */
.rg-before-showcase .rg-showcase-portrait:hover .rg-showcase-caption {
  background: var(--rg-orange);
  color: #202b36;
}

.rg-before-showcase .rg-showcase-portrait:hover .rg-showcase-caption h3 {
  color: #202b36;
}

.rg-before-showcase .rg-showcase-portrait:hover .rg-showcase-caption p {
  color: #202b36;
}

.rg-showcase-portrait{position:relative;background:#fff;overflow:hidden;box-shadow:0 12px 35px rgba(30,35,40,.08)}
.rg-showcase-portrait>img{display:block;width:100%;height:475px;object-fit:cover;object-position:center}
.rg-showcase-caption{background:#fff;padding:19px 20px;text-align:center;min-height:92px;transition:background .28s}
.rg-showcase-caption-orange{background:#ffa726}
.rg-showcase-caption h3{font-size:1.35rem;font-weight:500;margin:0 0 4px}
.rg-showcase-caption p{font-size:.83rem;margin:0;color:#555}
.rg-hover-icons{position:absolute;top:44%;left:22px;transform:translateY(-50%) translateX(-12px);display:flex;flex-direction:column;gap:10px;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s}
.rg-showcase-portrait:hover .rg-hover-icons,.rg-showcase-portrait:focus-within .rg-hover-icons{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}
.rg-hover-icons a{display:flex;align-items:center;width:max-content;color:#fff}
.rg-hover-icons i{width:43px;height:43px;border-radius:50%;background:#3b434d;display:grid;place-items:center;color:#fff;font-size:1rem;transition:.2s}
.rg-hover-icons span{padding:9px 14px;max-width:0;overflow:hidden;opacity:0;white-space:nowrap;transition:.2s}
.rg-hover-icons a:hover i,.rg-hover-icons a:focus i{background:var(--rg-orange);color:#222}
.rg-hover-icons a:hover span,.rg-hover-icons a:focus span{opacity:1;max-width:180px;color:#1d232a;background:var(--rg-orange);margin-left:8px;border-radius:4px}
.rg-showcase-portrait:focus-within .rg-hover-icons{opacity:1;pointer-events:auto}
.rg-coupon-single {
  background: #f7f1e6;
}

.rg-coupon-single h2 {
  max-width: 460px;
}

.rg-coupon-single p {
  max-width: 470px;
}

.rg-single-ticket {
  position: relative;
  width: 100%;
  border: 2px dashed #f0a11e;
  background: #ffffff;
  padding: 42px 36px 34px;
  text-align: center;
  box-shadow: 0 18px 40px rgba(25, 31, 38, 0.10);
  transition: transform .3s ease, box-shadow .3s ease;
  overflow: hidden;
}

.rg-single-ticket:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 50px rgba(25, 31, 38, 0.14);
}

/* Clean coupon — no corner decorations or side cutouts */

.rg-coupon-single .rg-single-ticket {
  position: relative;
  overflow: hidden;
  border: 2px dashed var(--rg-orange);
  border-radius: 0;
  background: #fff;
  padding: 42px 36px 34px;
}

.rg-ticket-label {
  display: block;
  margin-bottom: 18px;
  color: #6c7680;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
}

.rg-ticket-main strong {
  display: block;
  margin-bottom: 10px;
  font-size: clamp(46px, 5vw, 74px);
  line-height: 1;
  font-weight: 800;
  color: #1f2732;
}

.rg-ticket-main strong em {
  font-style: normal;
  color: var(--rg-orange);
  margin-right: 8px;
}

.rg-ticket-description {
  display: block;
  margin-bottom: 22px;
  font-size: 18px;
  font-weight: 700;
  color: #353c46;
}

.rg-ticket-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  padding-top: 18px;
  border-top: 1px solid #ece7de;
}

.rg-ticket-open {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #e69208;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 1px;
}

.rg-ticket-note {
  color: #6d7680;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .8px;
}

@media (max-width: 767.98px) {
  .rg-single-ticket {
    padding: 36px 22px 28px;
  }

  .rg-ticket-description {
    font-size: 16px;
  }

  .rg-ticket-footer {
    gap: 10px;
  }
}
.rg-considerations .rg-consider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rg-considerations .rg-consider-grid article{display:flex;gap:12px;align-items:flex-start;background:#fff;padding:18px;box-shadow:0 9px 24px rgba(0,0,0,.045)}
.rg-considerations .rg-consider-grid p{margin:0}
.rg-considerations .rg-consider-grid i{color:#e78b05;margin-top:5px}
.rg-considerations .rg-consider-wide{grid-column:1/-1}

.rg-final-cta{width:100%;background:var(--rg-orange)!important;padding:45px 0!important}
.rg-final-cta .container{max-width:1140px;padding-left:12px!important;padding-right:12px!important;background:transparent!important}
.rg-contact .rg-form input,.rg-contact .rg-form select,.rg-contact .rg-form textarea{border-radius:0}
.rg-contact .rg-form h3{font-size:1.7rem;font-weight:700;margin-bottom:20px}
@media (max-width:991.98px){.rg-hero-template{background-attachment:scroll!important}
.rg-content-panels .row>div:first-child{width:100%}}
@media (max-width:767.98px){.rg-before-showcase .rg-showcase-portrait>img{height:355px}
.rg-hover-icons{opacity:1;pointer-events:auto;transform:translateY(-50%)}
.rg-hover-icons a span{max-width:0}
.rg-considerations .rg-consider-grid{grid-template-columns:1fr}
.rg-single-ticket strong{font-size:2.5rem}
.rg-single-ticket strong em{font-size:3.7rem}}
body::before{content:"";position:fixed;top:0;left:0;right:0;background:#252c34;pointer-events:none}
.rg-topbar::before{background:#252c34!important}
.rg-scroll-line#rgScrollBar{position:fixed;top:0;left:0;width:0;height:5px;background:var(--rg-orange)!important;z-index:1091;box-shadow:none;pointer-events:none}
body::before{background:#252c34!important;height:5px;z-index:1090}
.rg-navbar .nav-link.active::before,.rg-navbar .nav-link:hover::before,.rg-navbar .nav-link:focus::before{clip-path:polygon(0 0,83% 0,100% 100%,17% 100%)!important}
.rg-hero-template{background-image:none!important;background-color:#20262d;clip-path:inset(0);isolation:isolate}
.rg-hero-template .rg-hero-bg{display:block!important;position:fixed;inset:0;width:100%;height:100dvh;object-fit:cover;object-position:center;z-index:-2}
.rg-hero-template .rg-hero-overlay{z-index:-1;background:linear-gradient(90deg,rgba(18,24,32,.80) 0%,rgba(21,27,35,.70) 52%,rgba(20,26,34,.60) 100%)}
@media (max-width:991.98px){.rg-hero-template{clip-path:none}
.rg-hero-template .rg-hero-bg{position:absolute;height:100%;object-position:center}}
@media (prefers-reduced-motion:reduce){.rg-hero-template .rg-hero-bg{position:absolute;height:100%}}

/* About section — one authoritative set of rules, retained Bootstrap columns and exact copy */
.rg-about-template {background:#f8f8f8;}
.rg-about-template .row.align-items-center {align-items:stretch!important;}
.rg-about-template .row.align-items-center > [class*="col-lg-"] {min-width:0;}
.rg-about-template .rg-photo-frame {position:relative;height:100%;min-height:0;margin:0;overflow:hidden;background:#e9e9e7;}
.rg-about-template .rg-photo-frame::before {display:none;}
.rg-about-template .rg-photo-frame img {display:block;width:100%;height:100%;min-height:520px;max-height:640px;object-fit:cover;object-position:center;filter:none;box-shadow:none;}

.rg-about-template .rg-photo-tag {
  position: absolute;
  right: -12px;
  bottom: 0;
  width: 85px;
  height: 250px;
  padding: 18px 25px;
  background: var(--rg-dark);
  color: #fff;

  /* display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px; */

  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-align: center;
}

.rg-about-template .rg-photo-tag i {
  font-size: 24px;
  color: var(--rg-orange);margin-bottom: 10px;
}

.rg-about-template h2 {font-size:clamp(1.8rem,2.6vw,2.75rem);line-height:1.18;font-weight:500;letter-spacing:-.025em;}
.rg-about-template .rg-icon-card {display:flex;align-items:center;gap:12px;height:100%;min-height:128px;padding:13px 12px;background:#fff;border:1px solid #edf0f2;transition:transform .25s ease,box-shadow .25s ease;}
.rg-about-template .rg-icon-card:hover {transform:translateY(-4px);box-shadow:0 14px 28px rgba(30,37,44,.08);background-color: #373d46;
  color: #fff;}
.rg-about-template .rg-icon-card > i {display:grid;place-items:center;flex:0 0 64px;width:64px;height:72px;background:transparent;color:var(--rg-orange-deep);font-size:2rem;}
.rg-about-template .rg-icon-card h3 {font-size:1.05rem;font-weight:500;line-height:1.3;margin:0 0 5px;}
.rg-about-template .rg-icon-card p {font-size:.83rem;line-height:1.55;margin:0;}

/* Hardware Repair — outline icon cards */
.rg-about-template .rg-icon-card {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 100%;
  min-height: 128px;
  padding: 16px 14px;
}

.rg-about-template .rg-hardware-line-icon {
  display: block;
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
  color: var(--rg-orange-deep);
  transition: transform .3s ease;
}

.rg-about-template .rg-icon-card h3 {
  font-size: 17.5px;
  font-weight: 500;
  line-height: 1.35;
  margin-bottom: 5px;
}

.rg-about-template .rg-icon-card p {
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.rg-about-template .rg-icon-card:hover {
  background: var(--rg-dark);
  color: #fff;
}

.rg-about-template .rg-icon-card:hover p {
  color: #e5e9ee;
}

.rg-about-template .rg-icon-card:hover .rg-hardware-line-icon {
  transform: translateY(-3px);}

@media (max-width: 575.98px) {
  .rg-about-template .rg-hardware-line-icon {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }

  .rg-about-template .rg-icon-card p {
    font-size: 13.5px;
  }
}

@media (min-width:992px) {.rg-about-template .rg-photo-frame {height:100%;}.rg-about-template .rg-photo-frame img {height:100%;max-height:none;}}
@media (max-width:991.98px) {.rg-about-template .rg-photo-frame img {height:460px;min-height:0;max-height:none;}.rg-about-template .rg-photo-tag {max-width:85%;}}
@media (max-width:575.98px) {.rg-about-template .rg-photo-frame img {height:365px;}.rg-about-template .rg-icon-card {min-height:110px;}.rg-about-template .rg-photo-tag {min-height:56px;padding:12px;font-size:.7rem;}}


/* Accessible kicker color on light backgrounds */
.rg-brand-strip .rg-section-kicker,
.rg-process .rg-section-kicker,
.rg-before-showcase .rg-section-kicker,
.rg-blog .rg-section-kicker {
  color: #a85b00;
}
