/* CakeDC site chrome (top menu + footer). Scoped .cdc-* classes,
   loaded AFTER the AssetCompress bundle so these rules win on order. */

/* Root horizontal-overflow guard. Wide page content (banner images, AOS
   `translate` transforms) can be wider than a phone viewport. body already
   has overflow-x:hidden, but that does NOT stop the mobile *layout viewport*
   from widening, nor does it constrain position:fixed elements, so the
   widened viewport drags right-anchored chrome (the hamburger toggle and the
   fixed "We bake with CakePHP" flag) off the right edge. Clipping at the root
   keeps the layout viewport pinned to device-width. */
html{ overflow-x: hidden; }

/* Accessible focus ring for all chrome interactive elements. */
.cdc-nav a:focus-visible,
.cdc-nav button:focus-visible,
.cdc-site-footer a:focus-visible{
  outline:3px solid var(--cdc-blue);
  outline-offset:3px;
  border-radius:6px;
}

/* Skip link (revealed on focus). */
.cdc-skip-link{
  position:absolute;left:-9999px;top:0;z-index:100000;
  background:#fff;color:var(--cdc-blue-deep);font-family:'Raleway',sans-serif;
  font-weight:700;padding:12px 18px;border-radius:0 0 10px 0;box-shadow:var(--cdc-shadow-rest);
}
.cdc-skip-link:focus{left:0;}

@media (prefers-reduced-motion: reduce){
  .cdc-nav *, .cdc-site-footer *{transition:none !important;}
}

/* ===================== TOP MENU ===================== */
.navbar-default.cdc-nav{
  background:var(--cdc-surface);
  border:none;
  border-bottom:1px solid var(--cdc-border);
  box-shadow:0 1px 0 rgba(20,45,60,.04);
}
/* primary links: mixed case, readable, larger touch target;
   ~28px vertical padding keeps the ~74px bar height (matches .navbar-compensation). */
.navbar-default.cdc-nav .menu-main > li > a{
  font-family:'Raleway',sans-serif;
  font-weight:600;
  font-size:14px;
  line-height:18px;
  letter-spacing:normal;
  text-transform:none;
  color:var(--cdc-ink);
  padding:28px 14px;
}
.navbar-default.cdc-nav .menu-main > li > a:hover,
.navbar-default.cdc-nav .menu-main > li > a:focus,
.navbar-default.cdc-nav .menu-main > li.active > a{
  color:var(--cdc-blue-deep);
  background:transparent;
}
/* active: coral underline (color is not the only signal). */
.navbar-default.cdc-nav .menu-main > li.active > a{
  box-shadow:inset 0 -3px 0 var(--cdc-coral);
}
/* services dropdown panel */
.navbar-default.cdc-nav .dropdown-menu{
  border:1px solid var(--cdc-border);
  border-radius:12px;
  box-shadow:var(--cdc-shadow-hover);
  padding:8px;
  margin-top:0;
}
.navbar-default.cdc-nav .dropdown-menu > li > a{
  font-family:'Raleway',sans-serif;
  font-weight:600;
  font-size:13.5px;
  color:var(--cdc-ink);
  border-radius:8px;
  padding:10px 12px;
  white-space:nowrap;
}
.navbar-default.cdc-nav .dropdown-menu > li > a:hover,
.navbar-default.cdc-nav .dropdown-menu > li > a:focus{
  background:var(--cdc-mist);
  color:var(--cdc-blue-deep);
}
/* "Get a Quote" — filled coral pill (was an outline). Covers desktop + mobile (.quote-xs).
   Desktop selector mirrors custom2.css's `.navbar-default .navbar-nav .quote > a` plus
   `.cdc-nav` so it out-specifies the old outline rule. */
.navbar-default.cdc-nav .navbar-nav .quote > a,
.quote.quote-xs > a{
  display:inline-block;
  background:var(--cdc-coral);
  border:none;
  color:#fff;
  border-radius:10px;
  padding:11px 18px;
  margin-top:18px;
  font-family:'Raleway',sans-serif;
  font-weight:700;
  font-size:13.5px;
  line-height:1;
  letter-spacing:normal;
  text-transform:none;
}
.navbar-default.cdc-nav .navbar-nav .quote > a:hover,
.navbar-default.cdc-nav .navbar-nav .quote > a:focus,
.quote.quote-xs > a:hover,
.quote.quote-xs > a:focus{
  background:var(--cdc-coral-deep);
  color:#fff;
  text-decoration:none;
}
/* hamburger */
.navbar-default.cdc-nav .navbar-toggle{
  border:1px solid var(--cdc-border);
  border-radius:10px;
  padding:10px 11px;
  margin-top:18px;
}
.navbar-default.cdc-nav .navbar-toggle .icon-bar{
  background-color:var(--cdc-ink);
  width:20px;height:2px;border-radius:2px;
}
.navbar-default.cdc-nav .navbar-toggle:hover,
.navbar-default.cdc-nav .navbar-toggle:focus{
  background:var(--cdc-mist);
}
/* mobile: full-width 44px rows, divider lines, side-marker active state */
@media (max-width:767px){
  .navbar-default.cdc-nav .menu-main > li > a{
    padding:14px 16px;
    box-shadow:none;
    border-bottom:1px solid var(--cdc-border);
  }
  .navbar-default.cdc-nav .menu-main > li.active > a{
    box-shadow:inset 3px 0 0 var(--cdc-coral);
  }
  .cdc-nav .quote > a{
    display:block;
    margin:10px 16px;
    text-align:center;
  }
  /* Vertically center the two top-bar controls (hamburger + Get a Quote)
     so they line up with each other and the logo. Both are float:right
     siblings, so we equalize their vertical offset rather than rely on a
     shared line box. */
  .navbar-default.cdc-nav .navbar-toggle{margin-top:10px;}
  .cdc-nav .quote.quote-xs{padding-top:0;padding-bottom:0;}
  .cdc-nav .quote.quote-xs > a{margin-top:8px;margin-bottom:0;}
}

/* ===================== FOOTER ===================== */
.cdc-site-footer{
  background:var(--cdc-ink);
  color:rgba(255,255,255,.74);
  padding:46px 0 24px;
}
.cdc-site-footer .cdc-foot-inner{
  max-width:1200px;margin:0 auto;padding:0 24px;
}
.cdc-site-footer .cdc-foot-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px;
}
.cdc-foot-logo{
  font-family:'Raleway',sans-serif;font-weight:700;font-size:22px;line-height:1;
  color:#fff;display:inline-block;margin-bottom:12px;letter-spacing:-.01em;
}
.cdc-foot-logo span{color:var(--cdc-blue-2);}
.cdc-foot-blurb{font-size:14px;line-height:1.6;max-width:32ch;margin:0 0 16px;color:rgba(255,255,255,.74);}
.cdc-foot-social{display:flex;gap:11px;}
.cdc-foot-social a{
  width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.18);
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .2s cubic-bezier(.2,.7,.3,1),border-color .2s;
}
.cdc-foot-social a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4);}
.cdc-foot-social svg{width:18px;height:18px;fill:rgba(255,255,255,.85);}
.cdc-foot-col h2{
  font-family:'Raleway',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.06em;
  text-transform:uppercase;color:#fff;margin:2px 0 13px;
}
.cdc-foot-col a{
  display:block;color:rgba(255,255,255,.74);text-decoration:none;font-size:14px;
  margin-bottom:10px;padding:2px 0;
}
.cdc-foot-col a:hover{color:#fff;text-decoration:underline;}
.cdc-foot-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
  border-top:1px solid rgba(255,255,255,.14);margin-top:34px;padding-top:18px;
}
.cdc-foot-bottom .copyright{font-size:12.5px;color:rgba(255,255,255,.6);margin:0;}
.cdc-foot-bake{font-size:12.5px;color:rgba(255,255,255,.6);}
@media (max-width:767px){
  .cdc-site-footer .cdc-foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:480px){
  .cdc-site-footer .cdc-foot-grid{grid-template-columns:1fr;}
}
