/* One navigation and contact dialog across public and account pages. */
.site-header,.detail-dialog { --ink:#1d1d1f;--secondary:#6e6e73;--brand:#f7d72b;--border:#d2d2d7;--blue:#0066cc;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Arial,sans-serif;line-height:1.5;color:#1d1d1f; }
.site-header *,.detail-dialog * { box-sizing:border-box;font-family:inherit; }
body .site-header { position:sticky;top:0;height:64px;z-index:100;background:rgba(250,250,252,.97);backdrop-filter:blur(22px);border-bottom:1px solid #0000000d; }
body .site-header .nav { display:flex;align-items:center;gap:24px;width:calc(100% - 80px);max-width:1200px;height:100%;padding:0;margin:0 auto; }
body .site-header a { text-decoration:none; }
body .site-header .wordmark { font-size:21px;font-weight:650;letter-spacing:-.8px;white-space:nowrap;color:#1d1d1f;line-height:1.5; }
body .site-header .nav-links { display:flex;position:static;flex-direction:row;align-items:center;justify-content:flex-start;gap:20px;width:auto;margin:0 0 0 auto;padding:0;background:none;border:0;box-shadow:none; }
body .site-header .nav-links a,body .site-header .nav-text-button { display:block;width:auto;padding:8px 0;margin:0;font-size:12px;line-height:1.5;font-weight:400;letter-spacing:-.1px;color:#424245;background:none;border:0;border-radius:0;cursor:pointer;white-space:nowrap; }
body .site-header .nav-links [aria-current=page] { color:#1d1d1f;box-shadow:0 2px 0 #f7d72b; }
body .site-header .nav-links a:hover,body .site-header .nav-text-button:hover { color:#0066cc; }
body .site-header .nav-submit { display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:8px 16px;margin:0;border:0;border-radius:100px;background:#f7d72b;color:#283840;font-size:12px;font-weight:550;line-height:1.3;letter-spacing:-.25px;white-space:nowrap; }
body .site-header .menu-toggle { display:none; }
.site-header :is(a,button):focus-visible { outline:2px solid #0066cc;outline-offset:4px; }
@media(max-width:950px) {
 body .site-header .nav { width:calc(100% - 40px);gap:15px; }
 body .site-header .wordmark { font-size:20px; }
 body .site-header .nav-submit { margin-left:auto;font-size:11px;padding:8px 12px; }
 body .site-header .nav-links { display:none;position:absolute;top:64px;left:0;right:0;width:100%;margin:0;padding:12px 24px;flex-direction:column;align-items:stretch;gap:0;background:#fafafc;border-bottom:1px solid #ddd; }
 body .site-header .nav-links.is-open { display:flex; }
 body .site-header .nav-links a,body .site-header .nav-text-button { font-size:16px;padding:9px 0;text-align:left; }
 body .site-header .menu-toggle { display:flex;flex-direction:column;gap:5px;justify-content:center;width:25px;height:32px;padding:4px;background:none;border:0;flex-shrink:0; }
 .site-header .menu-toggle span { height:1.5px;width:18px;background:#424245; }
 .site-header .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.25px) rotate(45deg); }
 .site-header .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.25px) rotate(-45deg); }
}
@media(max-width:380px) { body .site-header .wordmark { font-size:17px; } body .site-header .nav { gap:10px; } }
.detail-dialog { position:fixed;inset:0;margin:auto;border:0;border-radius:30px;padding:0;max-width:740px;width:calc(100% - 40px);max-height:calc(100dvh - 40px);background:#fff;box-shadow:0 25px 100px #0004;overflow:hidden; }
.detail-dialog::backdrop { background:#0007;backdrop-filter:blur(8px); }
.detail-dialog .dialog-scroll { max-height:calc(100dvh - 40px);overflow-y:auto;padding:40px; }
.detail-dialog .dialog-close { position:absolute;right:20px;top:19px;width:33px;height:33px;padding:0;border:0;border-radius:50%;background:#eeeef0;color:#1d1d1f;font-size:25px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer; }
.detail-dialog .eyebrow { margin:0;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#6e6e73; }
.detail-dialog h2 { font-size:34px;line-height:1.12;letter-spacing:-1.5px;font-weight:650; }
.detail-dialog .detail-body { font-size:16px;line-height:1.6;color:#515155; }
.detail-dialog p { margin:0 0 16px; }
.detail-dialog a { color:#0066cc;text-decoration:none; }
.detail-dialog .button { display:inline-flex;align-items:center;justify-content:center;padding:11px 24px;min-height:44px;border:0;border-radius:100px;background:#f7d72b;color:#1d1d1f;font-size:15px;font-weight:550;cursor:pointer; }
body.modal-open { overflow:hidden; }

.contact-dialog { max-width: 940px; }
.contact-dialog .dialog-scroll { padding: 28px 36px; }
.contact-dialog h2 { font-size: 34px; margin: 8px 36px 12px 0; }
.contact-dialog .detail-body > p { margin-bottom: 16px; }
.contact-form, #contact-estimate-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; }
.contact-form { margin-top: 16px; }
.contact-field { min-width: 0; }
.contact-message, #contact-estimate-fields, .contact-form .form-status { grid-column: 1 / -1; }
.contact-form label { display: block; font-size: 14px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.contact-form :is(input,select,textarea) { display: block; width: 100%; padding: 11px 14px; min-height: 46px; margin: 0; border: 1px solid var(--border); border-radius: 14px; color: var(--ink); background: #fff; font: inherit; line-height: 1.4; }
.contact-form textarea { resize: vertical; min-height: 92px; }
.contact-form :is(input,select,textarea):focus { outline: 3px solid #0066cc22; border-color: var(--blue); }
.contact-form [hidden], #contact-estimate-fields[hidden] { display: none; }
.contact-form .form-status { margin: 0; color: var(--ink); }
.contact-form .form-status:empty { display: none; }
.contact-form .form-status.is-error { color: #a12727; }
.contact-form .button { justify-self: start; margin-top: 0; }
.contact-form .button:disabled { opacity: .55; cursor: wait; }
.contact-hours { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 20px; border-top: 1px solid #e7e7ea; padding-top: 16px; margin-top: 18px; font-size: 13px; color: var(--secondary); }
.contact-hours p { margin: 0; }
@media (max-width: 600px) {
  .contact-dialog .dialog-scroll { padding: 42px 24px 24px; }
  .contact-dialog h2 { font-size: 28px; margin-right: 0; }
  .contact-form, #contact-estimate-fields, .contact-hours { grid-template-columns: 1fr; }
  .contact-hours { gap: 10px; }
}


.detail-dialog .contact-form select { appearance:none;padding-right:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%231d1d1f' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center; }
body .site-header .nav-submit[aria-current=page] { box-shadow:inset 0 0 0 2px #8b6900; }
/* Legacy pages set these on the document; keep header rendering identical everywhere. */
body .site-header {
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
 -webkit-text-size-adjust:100%;
 text-size-adjust:100%;
 text-rendering:optimizeLegibility;
 font-synthesis:none;
}
/* Shared typography for all public pages, forms, and account workspaces. */
html,body,body :where(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,div,section,main,header,footer,ul,ol,li,span,small,strong,em,table,td,th,dt,dd,form):not(.v-icon) { font-family:Arial,sans-serif !important; }

/* Merchant enquiries share the contact dialog's compact, two-column layout. */
.design-page .builders-cta .merchants-contact-actions .builders-text-link { color:#fff; }
.merchant-form-main .merchant-dialog-card { position:relative;padding:28px 36px !important;border:0;border-radius:30px !important;background:#fff;color:#1d1d1f;box-shadow:0 25px 100px #0004;overflow-y:auto;max-height:calc(100dvh - 40px); }
.merchant-form-main .contact-modal-title { position:static;padding:0;border:0;margin:0; }
.merchant-form-main .section-title { margin:8px 36px 12px 0;font-size:34px;line-height:1.12;letter-spacing:-1.5px;font-weight:650;color:#1d1d1f;text-align:left; }
.merchant-form-main .font-bold { font-weight:400;color:#515155;line-height:1.6; }
.merchant-form-main .merchant-dialog-close { position:absolute;right:20px;top:19px;width:33px;height:33px;padding:0;border:0;border-radius:50%;background:#eeeef0;color:#1d1d1f;font-size:25px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer; }
.merchant-form-main .merchant-dialog-form { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin-top:16px;padding:0; }
.merchant-form-main .v-field { border-radius:14px;background:#fff;font-size:14px;--v-field-padding-start:14px;--v-field-padding-end:14px; }
.merchant-form-main .v-field__outline { color:#d2d2d7;--v-field-border-opacity:1; }
.merchant-form-main .v-field--focused .v-field__outline { color:#0066cc; }
.merchant-form-main .v-textarea { grid-column:1 / -1; }
.merchant-form-main .merchant-dialog-form > .d-flex { grid-column:1 / -1; }
.merchant-form-main .merchant-dialog-form .login-btn { margin:0;padding:11px 24px;min-height:44px;width:auto;border:0;border-radius:100px;background:#f7d72b;color:#1d1d1f;font-size:15px;font-weight:550; }
.merchant-form-main .modal-footer-wrapper { margin:18px 0 0 !important;padding:0;border:0; }
.merchant-form-main .contact-logo-wrapper img { width:260px;max-width:100%;height:auto; }
@media(max-width:600px) {
 .merchant-form-main .merchant-dialog-card { padding:42px 24px 24px !important; }
 .merchant-form-main .section-title { font-size:28px; }
 .merchant-form-main .merchant-dialog-form { grid-template-columns:1fr; }
}

/* Match the reference site's compact corners across action buttons. */
html body :is(button:not(.dashboard-menu-item), input[type="submit"], input[type="button"], input[type="reset"], .button, .btn, .nav-submit, .login-btn, .submit-btn, .registration-btn, .checkout-button, .submit, .v-btn, .plus-button, .card-link, .story-toggle) {
 border-radius:7px !important;
}

/* Sidebar wordmarks render consistently with the homepage on every page. */
body :is(.public-sidebar-brand, .public-workspace-brand, .dashboard-sidebar-brand) {
 -webkit-font-smoothing:auto;
 -moz-osx-font-smoothing:auto;
 text-rendering:auto;
 font-synthesis:none;
}

/* Plus/minus controls keep circular backgrounds in both accordion states. */
html body[class] :is(.plus-button, .onboarding-toggle) { border-radius:50% !important; }

/* Dark contact and merchant enquiry dialogs, including their form controls. */
body .detail-dialog.contact-dialog,
body .merchant-form-main .merchant-dialog-card {
 --ink:#f5f5f7;
 --secondary:#c5c5ca;
 --border:#5a5a60;
 --blue:#599cfb;
 --v-theme-surface:29,29,31;
 --v-theme-on-surface:245,245,247;
 --v-theme-error:255,180,171;
 color-scheme:dark;
 background:#1d1d1f;
 color:var(--ink);
}
body .contact-dialog :is(h2,.detail-body),
body .merchant-form-main :is(.section-title,.font-bold) { color:#f5f5f7; }
body .contact-dialog .detail-body > p,
body .merchant-form-main .font-bold { color:#c5c5ca; }
body .contact-dialog a { color:#599cfb; }
body .contact-dialog .contact-form :is(input,select,textarea),
body .merchant-form-main .v-field { background-color:#2c2c2e;color:#f5f5f7; }
body .contact-dialog .contact-form select {
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23f5f5f7' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
body .contact-dialog .contact-form :is(input,textarea)::placeholder { color:#b5b5bd;opacity:1; }
body .contact-dialog .contact-form :is(input,select,textarea):focus { border-color:#599cfb;outline:3px solid #599cfb44; }
body .contact-dialog .contact-hours { border-color:#5a5a60; }
body .contact-dialog .form-status.is-error { color:#ffb4ab; }
body .contact-dialog .dialog-close,
body .merchant-form-main .merchant-dialog-close { background:#333333;color:#f5f5f7; }
body .merchant-form-main .v-field__outline { color:#5a5a60; }
body .merchant-form-main .v-field--focused .v-field__outline { color:#599cfb; }
body .merchant-form-main .v-field--error .v-field__outline { color:#ffb4ab; }
body .merchant-form-main .v-label { color:#c5c5ca;opacity:1; }
body .merchant-form-main :is(input,textarea)::placeholder { color:#b5b5bd;opacity:1; }

/* Match the merchant dialog’s plain dimmed overlay. */
.detail-dialog.contact-dialog::backdrop { background:rgba(0,0,0,.32);backdrop-filter:none;-webkit-backdrop-filter:none; }
