/* Decorative Concrete Resurfacing - custom layer.
   Loaded AFTER the main bundle so it extends/overrides without touching it.
   Brand: navy #0c2842, navy-deep #04192e, teal #00aeb6, charcoal #262f38 */
:root{
  --dcr-navy:#0c2842; --dcr-navy-deep:#04192e; --dcr-teal:#00aeb6; --dcr-charcoal:#262f38;
  --dcr-border:#d7dee6; --dcr-err:#b91c1c; --dcr-ok:#15803d;
}

/* ---------- Skip link (keyboard / screen reader) ---------- */
.dcr-skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--dcr-navy);color:#fff;
  padding:10px 16px;border-radius:0 0 8px 0;font-weight:700;text-decoration:none}
.dcr-skip:focus{left:0}

/* ---------- Visible keyboard focus (only when navigating by keyboard) ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible{
  outline:3px solid var(--dcr-teal);outline-offset:2px;border-radius:4px}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}
html.dcr-reduce-motion *,html.dcr-reduce-motion *::before,html.dcr-reduce-motion *::after{
  animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

/* ---------- Accessibility preferences (set by the widget) ---------- */
html.dcr-large-text{font-size:118%}
html.dcr-contrast body{background:#fff;color:#0a0a0a}
html.dcr-contrast a{text-decoration:underline}
html.dcr-contrast a:hover{text-decoration:underline}
html.dcr-contrast .text-white\/80,html.dcr-contrast .text-charcoal\/60,html.dcr-contrast .text-charcoal\/70{color:#0a0a0a!important}
html.dcr-contrast :is(button,.input,input,select,textarea){border:2px solid #0a0a0a!important}

/* ---------- Accessibility widget ---------- */
.dcr-a11y-btn{position:fixed;left:16px;bottom:16px;z-index:60;width:48px;height:48px;border-radius:50%;
  background:var(--dcr-navy);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.25)}
.dcr-a11y-btn:hover{background:var(--dcr-navy-deep)}
.dcr-a11y-btn svg{width:26px;height:26px}
.dcr-a11y-panel{position:fixed;left:16px;bottom:74px;z-index:60;width:260px;background:#fff;color:var(--dcr-charcoal);
  border:1px solid var(--dcr-border);border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.18);padding:14px}
.dcr-a11y-panel[hidden]{display:none}
.dcr-a11y-panel h2{margin:0 0 10px;font-size:1rem;color:var(--dcr-navy)}
.dcr-a11y-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;font-size:.95rem}
.dcr-a11y-row+.dcr-a11y-row{border-top:1px solid #eef2f6}
.dcr-a11y-row button{border:1px solid var(--dcr-border);background:#f4f7fa;border-radius:8px;height:34px;min-width:40px;
  padding:0 10px;font-weight:700;cursor:pointer;color:var(--dcr-navy)}
.dcr-a11y-row button[aria-pressed="true"]{background:var(--dcr-teal);border-color:var(--dcr-teal);color:#fff}
.dcr-a11y-reset{margin-top:8px;width:100%;height:34px;border:none;border-radius:8px;background:#eef2f6;cursor:pointer;font-weight:700;color:var(--dcr-navy)}

/* ---------- Mobile menu ---------- */
#dcr-mobile-menu{display:none;background:#fff;border-bottom:1px solid var(--dcr-border)}
#dcr-mobile-menu.dcr-open{display:block}
#dcr-mobile-menu ul{list-style:none;margin:0;padding:8px 0}
#dcr-mobile-menu a{display:block;padding:13px 20px;color:var(--dcr-navy);text-decoration:none;font-weight:600}
#dcr-mobile-menu a:hover,#dcr-mobile-menu a:focus{background:#f4f7fa;color:var(--dcr-teal)}
#dcr-mobile-menu .dcr-mm-cta{margin:8px 20px 16px;display:flex;gap:10px;flex-wrap:wrap}
#dcr-mobile-menu .dcr-mm-cta a{flex:1;text-align:center;border-radius:8px;padding:12px}
#dcr-mobile-menu .dcr-mm-cta a.p{background:var(--dcr-navy);color:#fff}
#dcr-mobile-menu .dcr-mm-cta a.g{border:1px solid var(--dcr-border)}
@media (min-width:1024px){#dcr-mobile-menu{display:none!important}}

/* ---------- FAQ accordion ---------- */
.dcr-faqbar{display:flex;gap:10px;margin:0 0 14px}
.dcr-faqbar button{border:1px solid var(--dcr-border);background:#f4f7fa;border-radius:8px;height:38px;padding:0 14px;
  font-weight:700;cursor:pointer;color:var(--dcr-navy)}
.dcr-faqbar button:hover{border-color:var(--dcr-teal);color:var(--dcr-teal)}
[data-faq-answer][hidden]{display:none}

/* ---------- Contact / estimate form ---------- */
.dcr-form{display:block}
.dcr-form .dcr-fs{border:1px solid var(--dcr-border);border-radius:14px;padding:14px 16px;margin:0 0 16px}
.dcr-form .dcr-fs[data-invalid="true"]{border-color:var(--dcr-err);background:#fffafa}
.dcr-form legend{font-weight:700;color:var(--dcr-navy);padding:0 6px}
.dcr-hint{font-weight:400;color:#5b6670;font-size:.85em}
.dcr-req{color:var(--dcr-err);margin-left:2px}
.dcr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:8px}
@media (max-width:560px){.dcr-grid{grid-template-columns:1fr}}
.dcr-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--dcr-border);border-radius:10px;cursor:pointer;font-size:.95rem}
.dcr-opt:hover{border-color:var(--dcr-teal)}
.dcr-opt input{width:18px;height:18px;accent-color:var(--dcr-teal);flex:none}
.dcr-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 14px}
@media (max-width:560px){.dcr-row{grid-template-columns:1fr}}
.dcr-field{display:flex;flex-direction:column;margin:0 0 14px}
.dcr-field label{font-weight:600;color:var(--dcr-charcoal);margin:0 0 6px;font-size:.95rem}
.dcr-field .input,.dcr-form .input{width:100%}
.dcr-field [aria-invalid="true"]{border-color:var(--dcr-err)!important;outline-color:var(--dcr-err)}
.dcr-err{color:var(--dcr-err);font-size:.85rem;margin:6px 0 0;min-height:0}
.dcr-err:empty{display:none}
.dcr-form-err{background:#fef2f2;border:1px solid #fecaca;color:var(--dcr-err);border-radius:10px;padding:10px 14px;margin:0 0 14px;font-weight:600}
.dcr-form-err[hidden]{display:none}
.dcr-drop{border:2px dashed var(--dcr-border);border-radius:12px;padding:18px;text-align:center;color:#5b6670;background:#fafcfe}
.dcr-drop.dcr-dragover{border-color:var(--dcr-teal);background:#f0fbfb}
.dcr-drop input[type=file]{display:block;margin:0 auto 8px}
.dcr-link{color:var(--dcr-teal);font-weight:700;text-decoration:underline;cursor:pointer}
.dcr-thumbs{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.dcr-thumbs li{position:relative;width:84px;height:84px;border-radius:10px;overflow:hidden;border:1px solid var(--dcr-border)}
.dcr-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.dcr-thumbs button{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:14px;line-height:1}
.dcr-submit{width:100%;height:52px;border:none;border-radius:8px;background:var(--dcr-navy);color:#fff;font-weight:800;font-size:1.05rem;cursor:pointer;transition:background .15s}
.dcr-submit:hover{background:var(--dcr-navy-deep)}
.dcr-submit:disabled{opacity:.6;cursor:not-allowed}
.dcr-status{margin-top:12px;font-size:.95rem;font-weight:600}
.dcr-status.ok{color:var(--dcr-ok)}
.dcr-status.err{color:var(--dcr-err)}

/* ---------- Language link in the top bar ---------- */
.dcr-lang{color:#fff;text-decoration:none;font-weight:700}
.dcr-lang:hover{color:var(--dcr-teal)}
