/* Shared styles for every page. Tailwind CSS (loaded from its CDN in header.php) handles the rest. */

html { scroll-behavior: smooth; }
body { color: #0F2340; }
section[id] { scroll-margin-top: 76px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #1B4F9C; outline-offset: 2px; }
.on-dark a:focus-visible, .on-dark button:focus-visible { outline-color: #FFC61A; }

/* Blue and white kerb stripe, a nod to Kolkata's painted road edges */
.kerb { height: 8px; background: repeating-linear-gradient(90deg, #1B4F9C 0 28px, #fff 28px 56px); }

/* Appliance icons (inline SVG sprite) */
.icon { width: 1.75rem; height: 1.75rem; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* Form fields */
.field { width: 100%; border-radius: .6rem; border: 1.5px solid rgb(15 35 64 / .25); background: #fff; padding: .65rem .8rem; font-size: 1rem; }
.field:focus { outline: 2px solid #1B4F9C; outline-offset: 1px; border-color: #1B4F9C; }
.field[aria-invalid="true"] { border-color: #C62828; }
.err { margin-top: .25rem; font-size: .875rem; color: #C62828; }
.err:empty { display: none; }

/* Service cards: this illustrated panel shows behind each photo, and stays visible if a photo is missing */
.svc-fallback { background: linear-gradient(135deg, #1B4F9C, #0F2340); }

/* FAQ */
.faq-panel { display: none; }

/* Owl Carousel tweaks */
.owl-theme .owl-dots .owl-dot span { width: 10px; height: 10px; background: #C3D1E6; }
.owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { background: #1B4F9C; }
.review-carousel .owl-stage { display: flex; }
.review-carousel .owl-item { display: flex; }
.review-carousel .owl-item > .item { width: 100%; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

/* Long-form text */
    .legal { max-width: 42rem; }
    .legal h2 { font-family: "Bricolage Grotesque", "Hind Siliguri", sans-serif; font-size: 1.6rem; font-weight: 700; line-height: 1.2; margin: 2.75rem 0 .75rem; scroll-margin-top: 90px; }
    .legal h2:first-child { margin-top: 0; }
    .legal h3 { font-weight: 700; margin: 1.5rem 0 .25rem; }
    .legal p { margin: .75rem 0; }
    .legal ul { list-style: disc; padding-left: 1.4rem; margin: .75rem 0; }
    .legal li { margin: .4rem 0; padding-left: .2rem; }
    .legal a { color: #1B4F9C; text-decoration: underline; text-underline-offset: 2px; }
    .legal a:hover { color: #0F2340; }
    #toc summary { list-style: none; }
    #toc summary::-webkit-details-marker { display: none; }

@media print { header, footer, #toc, .kerb, .no-print { display: none !important; } }
