/* Shared behavior and accessibility; industry files load after this stylesheet. */
.template-demo-preview-bar p { color: #e1e6e3; }
.template-preview-controls .template-control-link--choose:is(:hover, :focus-visible) { color: #111827; }
.template-preview-controls .template-control-link:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.template-gallery-preview-image { display: block; width: 100%; height: clamp(220px, 25vw, 340px); object-fit: cover; object-position: top; }
.template-form-fields .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.template-site { overflow-wrap: anywhere; }
.template-site *, .template-site *::before, .template-site *::after { box-sizing: border-box; }
.template-site img, .template-site svg { max-width: 100%; }
.template-site a:focus-visible, .template-site button:focus-visible, .template-site summary:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
.template-site .template-site-bottom-cta :is(h2, p, .template-site-kicker) { color: inherit; }
.template-site--hvac-plumbing-electrical .template-site-bottom-cta { color: #17324b; }
/* These darker accents need light action text instead of the default primary ink. */
:is(.template-site--hvac-plumbing-electrical, .template-site--professional-services, .template-site--local-service-general) .template-site-bottom-cta .template-site-actions a:first-child { color: #fff; }
:is(.template-site--hvac-plumbing-electrical, .template-site--professional-services, .template-site--local-service-general) .template-site-bottom-cta .template-site-actions a:first-child:focus-visible { outline: 3px solid var(--tw-primary); outline-offset: 4px; }
.template-site button, .template-site input, .template-site textarea, .template-site select { font: inherit; }
.template-skip-link { position: absolute; left: 1rem; top: -10rem; z-index: 100; padding: .8rem 1rem; background: #fff; color: #17251e; }
.template-skip-link:focus { top: 1rem; }
.template-form-honeypot { position: absolute !important; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.template-form-feedback { padding: 1rem; border: 1px solid #52655a; border-radius: .25rem; background: #fff; color: #21372a; }
.template-form-feedback p { margin: 0 0 .75rem; color: inherit !important; }
.template-form-dismiss { font-size: .85rem !important; padding: .5rem !important; min-height: 44px; background: #21372a !important; color: #fff !important; }
.template-lead-form button:disabled { opacity: .65; cursor: wait; }
.template-form-fields { display: grid; gap: .62rem; min-width: 0; border: 0; padding: 0; margin: 0; }
.template-lead-form .validation-errors { color: var(--template-form-error, #fff); padding-left: 1.2rem; }
.template-site--boutique-retail, .template-site--restaurant-cafe, .template-site--professional-services { --template-form-error: #8d2525; }
.template-export-demo { padding: .8rem 1rem; background: #f4e6c7; color: #332812; text-align: center; font: 600 .85rem/1.5 system-ui,sans-serif; }
.template-client-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; padding: clamp(1rem,4vw,4rem); }
.template-client-photos figure { margin: 0; }
.template-client-photos img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 3/2; }
.template-client-photos figcaption { padding-top: .65rem; line-height: 1.5; }
.template-site figure img { display: block; width: 100%; height: auto; object-fit: cover; }
.template-static-menu > summary { padding: .85rem 1.2rem; cursor: pointer; font: 600 .85rem/1.5 system-ui,sans-serif; }
@media(max-width: 600px) { .template-client-photos { grid-template-columns: 1fr; } }
@media(prefers-reduced-motion: reduce) { .template-site *, .template-site *::before, .template-site *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
