﻿:root {
      --bg: #f3eee8;
      --panel: #fff9f2;
      --ink: #1f2630;
      --muted: #5f6b78;
      --brand: #1e4b7a;
      --brand-2: #f29131;
      --line: #d8ccc0;
      --ok: #0f8a5f;
      --shadow: 0 18px 40px rgba(26, 34, 48, 0.14);
      --radius: 20px;
      --maxw: 1120px;
    }

    * {
      box-sizing: border-box;
    }

    html,
    body {
      margin: 0;
      padding: 0;
    }

    body {
      font-family: "Outfit", sans-serif;
      color: var(--ink);
      background:
        radial-gradient(circle at 8% 10%, rgba(242, 145, 49, 0.2) 0, transparent 45%),
        radial-gradient(circle at 92% 18%, rgba(30, 75, 122, 0.2) 0, transparent 42%),
        linear-gradient(140deg, #f7f3ee 0%, #f0e7dd 55%, #efe5da 100%);
      line-height: 1.5;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    .container {
      width: min(var(--maxw), 92%);
      margin: 0 auto;
    }

    .topbar {
      position: sticky;
      top: 0;
      z-index: 30;
      backdrop-filter: blur(10px);
      background: rgba(255, 248, 240, 0.88);
      border-bottom: 1px solid rgba(31, 38, 48, 0.08);
    }

    .topbar-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 0;
      gap: 16px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      min-width: 0;
    }

    .brand img {
      width: 54px;
      height: 54px;
      object-fit: contain;
      border-radius: 0;
      box-shadow: none;
      background: transparent;
      flex-shrink: 0;
    }

    .brand strong {
      display: block;
      font-size: 1rem;
      line-height: 1.1;
    }

    .brand small {
      color: var(--muted);
      font-size: 0.85rem;
      display: block;
    }

    .topbar-cta {
      padding: 10px 18px;
      min-width: 148px;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .topbar-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-left: auto;
    }

    .nav-dropdown {
      position: relative;
    }

    .nav-dropdown summary {
      list-style: none;
      cursor: pointer;
      border: 1px solid rgba(30, 75, 122, 0.26);
      background: rgba(255, 255, 255, 0.8);
      color: #1f4f80;
      border-radius: 999px;
      padding: 8px 14px;
      font-weight: 700;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      white-space: nowrap;
    }

    .nav-dropdown summary::-webkit-details-marker {
      display: none;
    }

    .nav-dropdown summary::after {
      content: "\25BE";
      font-size: 0.82rem;
      line-height: 1;
      transition: transform 0.2s ease;
    }

    .nav-dropdown summary.menu-toggle {
      width: 44px;
      height: 44px;
      padding: 0;
      justify-content: center;
      font-size: 1.25rem;
      line-height: 1;
    }

    .nav-dropdown summary.menu-toggle::after {
      content: none;
    }

    .nav-dropdown[open] summary::after {
      transform: rotate(180deg);
    }

    .nav-menu {
      position: absolute;
      top: calc(100% + 8px);
      right: 0;
      min-width: 230px;
      display: grid;
      gap: 4px;
      padding: 8px;
      border-radius: 14px;
      background: rgba(255, 249, 242, 0.98);
      border: 1px solid rgba(30, 75, 122, 0.16);
      box-shadow: 0 16px 32px rgba(21, 34, 52, 0.16);
      backdrop-filter: blur(8px);
      z-index: 40;
    }

    .nav-menu a {
      border-radius: 10px;
      padding: 8px 10px;
      font-size: 0.92rem;
      font-weight: 600;
      color: #213449;
    }

    .nav-menu a:hover {
      background: rgba(30, 75, 122, 0.1);
      color: #173b61;
    }

    .lists {
      padding: 6px 0 56px;
    }

    .site-directory {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
    }

    .directory-card {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: linear-gradient(160deg, rgba(255, 255, 255, 0.9), rgba(247, 240, 233, 0.9));
      box-shadow: 0 10px 24px rgba(31, 38, 48, 0.08);
      padding: 16px;
      display: grid;
      gap: 10px;
    }

    .directory-item summary {
      list-style: none;
      cursor: default;
      margin: 0;
      font-size: 1rem;
      color: #1d4570;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-weight: 700;
    }

    .directory-item summary::-webkit-details-marker {
      display: none;
    }

    .directory-panel {
      display: grid;
      gap: 10px;
    }

    .directory-card ul {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 6px;
    }

    .directory-card li a {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: #243140;
      font-weight: 600;
      font-size: 0.94rem;
      line-height: 1.35;
      padding: 3px 0;
      border-bottom: 1px solid transparent;
      transition: color 0.2s ease, border-color 0.2s ease;
    }

    .directory-card li a:hover {
      color: #1f4f80;
      border-color: rgba(31, 79, 128, 0.34);
    }

    .directory-more {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      margin-top: 2px;
      color: #1f4f80;
      font-weight: 800;
      border-bottom: 1px solid rgba(31, 79, 128, 0.3);
    }

    .directory-card p {
      margin: 0;
      color: #4f5c6b;
      font-size: 0.9rem;
      line-height: 1.4;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 11px 18px;
      border-radius: 999px;
      font-weight: 700;
      transition: 0.25s ease;
      border: 2px solid transparent;
      cursor: pointer;
    }


    .card .service-link {
      margin-top: 10px;
      padding: 8px 12px;
      font-size: 0.82rem;
      font-weight: 800;
    }
    .btn.primary {
      background: linear-gradient(120deg, var(--brand) 0%, #275f98 75%);
      color: #fff;
      box-shadow: 0 10px 22px rgba(30, 75, 122, 0.24);
    }

    .btn.primary:hover {
      transform: translateY(-2px);
      box-shadow: 0 14px 26px rgba(30, 75, 122, 0.3);
    }

    .btn.ghost {
      border-color: var(--brand);
      color: var(--brand);
      background: rgba(255, 255, 255, 0.6);
    }

    .btn.text-cta {
      background: linear-gradient(130deg, #f29131, #dd7f22);
      color: #fff;
      text-transform: uppercase;
      letter-spacing: 0.02em;
      font-weight: 800;
      box-shadow: 0 8px 20px rgba(242, 145, 49, 0.35);
    }

    .btn.text-cta:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 22px rgba(242, 145, 49, 0.45);
    }

    .hero {
      padding: 84px 0 54px;
      position: relative;
      overflow: hidden;
      min-height: 620px;
      display: flex;
      align-items: center;
    }

    .hero-media {
      position: absolute;
      inset: 0;
      background-image:
        linear-gradient(105deg, rgba(10, 18, 30, 0.78) 0%, rgba(10, 18, 30, 0.48) 48%, rgba(10, 18, 30, 0.34) 100%),
        url("../img/HERO3.png");
      background-size: cover;
      background-position: center center;
      z-index: 0;
    }

    .hero-media::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(8, 14, 23, 0.08) 0%, rgba(8, 14, 23, 0.2) 100%);
      pointer-events: none;
    }

    .hero-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 26px;
      align-items: center;
    }

    .hero-content {
      max-width: 680px;
    }

    .badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border: 1px solid rgba(255, 255, 255, 0.35);
      background: rgba(17, 28, 43, 0.45);
      padding: 8px 13px;
      border-radius: 999px;
      font-size: 0.86rem;
      color: #f4f8fc;
      margin-bottom: 14px;
    }

    h1,
    h2 {
      font-family: "DM Serif Display", serif;
      line-height: 1.02;
      margin: 0;
    }

    h1 {
      font-size: clamp(2.1rem, 4.5vw, 4.2rem);
      margin-bottom: 14px;
      max-width: 12ch;
      color: #fff;
      text-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    }

    .lead {
      color: rgba(246, 250, 255, 0.92);
      margin: 0;
      max-width: 56ch;
      text-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    }

    .hero-actions {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 18px;
    }

    .hero-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px 12px;
      margin: 0;
      padding: 0;
      list-style: none;
      color: rgba(255, 255, 255, 0.95);
      font-weight: 500;
      text-shadow: 0 4px 14px rgba(0, 0, 0, 0.32);
    }

    .hero-card {
      background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(255, 245, 233, 0.96));
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 20px;
      box-shadow: var(--shadow);
      position: relative;
      transform: translateY(0);
      animation: rise 0.9s ease;
    }

    .hero-card::after {
      content: "";
      position: absolute;
      inset: auto -40px -40px auto;
      width: 130px;
      height: 130px;
      background: radial-gradient(circle, rgba(30, 75, 122, 0.22) 0, rgba(30, 75, 122, 0) 70%);
      pointer-events: none;
    }

    .hero-card img {
      width: 100%;
      max-width: 280px;
      margin: 0 auto 16px;
      border-radius: 16px;
      box-shadow: 0 12px 28px rgba(17, 33, 52, 0.22);
      background: #fff;
      display: block;
    }

    .hero-card h3 {
      margin: 0 0 8px;
      font-size: 1.06rem;
    }

    .hero-card p {
      margin: 0;
      color: var(--muted);
      font-size: 0.95rem;
    }

    .services {
      padding: 36px 0;
    }

    .about {
      padding: 10px 0 34px;
    }

    .about-wrap {
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 20px;
      background: rgba(255, 255, 255, 0.78);
      box-shadow: 0 10px 30px rgba(21, 28, 41, 0.08);
    }

    .about-logo {
      display: block;
      width: clamp(187px, 24.2vw, 292px);
      height: auto;
      margin: 0 auto 12px;
    }

    .about-wrap h2 {
      margin-bottom: 10px;
    }

    .about-wrap p {
      margin: 0;
      color: var(--muted);
      max-width: 72ch;
    }

    .coverage {
      padding: 6px 0 24px;
    }

    .coverage-wrap {
      border: 1px solid var(--line);
      border-radius: 20px;
      background: linear-gradient(130deg, rgba(255, 250, 244, 0.95), rgba(247, 239, 230, 0.9));
      box-shadow: 0 14px 34px rgba(21, 28, 41, 0.1);
      padding: 22px;
    }

    .coverage-head {
      margin-bottom: 14px;
    }

    .coverage-head h2 {
      margin-bottom: 8px;
    }

    .coverage-head p {
      margin: 0;
      color: var(--muted);
      max-width: 70ch;
    }

    .coverage-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .coverage-card {
      border: 1px solid rgba(30, 75, 122, 0.14);
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.9);
      padding: 14px;
    }

    .coverage-card h3 {
      margin: 0 0 8px;
      color: #1f4f80;
      font-size: 1rem;
    }

    .coverage-card ul {
      margin: 0;
      padding-left: 18px;
      display: grid;
      gap: 6px;
      color: #2d3e52;
      font-size: 0.93rem;
      line-height: 1.35;
    }

    .services-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 16px;
      margin-bottom: 18px;
    }

    .services-header p {
      margin: 0;
      color: var(--muted);
      max-width: 55ch;
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
    }

    .card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: 16px;
      padding: 16px;
      transition: transform 0.25s ease, box-shadow 0.25s ease;
    }

    .card-media {
      width: 100%;
      aspect-ratio: 16 / 10;
      object-fit: cover;
      border-radius: 12px;
      margin-bottom: 10px;
      display: block;
      box-shadow: 0 8px 18px rgba(31, 38, 48, 0.12);
    }

    .card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 24px rgba(31, 38, 48, 0.12);
    }

    .icon {
      width: 38px;
      height: 38px;
      border-radius: 12px;
      display: grid;
      place-items: center;
      color: #fff;
      font-weight: 700;
      background: linear-gradient(135deg, var(--brand), #3f7fbe);
      margin-bottom: 10px;
    }

    .card h3 {
      margin: 0 0 6px;
      font-size: 1rem;
    }

    .card p {
      margin: 0;
      color: var(--muted);
      font-size: 0.94rem;
    }

    .card details {
      margin-top: 10px;
      border-top: 1px solid #d9d0c7;
      padding-top: 8px;
    }

    .card summary {
      list-style: none;
      cursor: pointer;
      font-size: 0.85rem;
      font-weight: 700;
      color: #1f4f80;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .card summary::-webkit-details-marker {
      display: none;
    }

    .card summary::after {
      content: "+";
      font-size: 1rem;
      color: #6f7a86;
    }

    .card details[open] summary::after {
      content: "-";
    }

    .card .service-list {
      margin: 8px 0 0;
      padding-left: 17px;
      display: grid;
      gap: 6px;
      color: #374150;
      font-size: 0.84rem;
      line-height: 1.35;
    }

    .card .service-link {
      margin-top: 10px;
      padding: 8px 12px;
      font-size: 0.82rem;
      font-weight: 800;
    }

    .cabinet-block {
      margin-top: 16px;
      border: 1px solid var(--line);
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.88);
      padding: 16px;
    }

    .cabinet-block h3 {
      margin: 0 0 10px;
      font-size: 1.05rem;
    }

    .cabinet-block ul {
      margin: 0;
      padding-left: 18px;
      display: grid;
      gap: 8px;
      color: #2a3441;
      font-size: 0.95rem;
    }

    .highlight {
      padding: 44px 0 60px;
    }

    .highlight-box {
      position: relative;
      overflow: hidden;
      border-radius: 26px;
      border: 1px solid rgba(255, 255, 255, 0.2);
      background: linear-gradient(120deg, #173c61 0%, #1f4f80 55%, #2a5f95 100%);
      color: #fff;
      padding: 30px;
      box-shadow: var(--shadow);
    }

    .highlight-box::before {
      content: "";
      position: absolute;
      width: 320px;
      height: 320px;
      border-radius: 50%;
      right: -120px;
      top: -130px;
      background: radial-gradient(circle, rgba(242, 145, 49, 0.4), rgba(242, 145, 49, 0));
      animation: pulse 4s ease-in-out infinite;
    }

    .highlight-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 20px;
      align-items: center;
    }

    .highlight h2 {
      font-size: clamp(1.7rem, 3.1vw, 2.7rem);
      margin-bottom: 8px;
    }

    .highlight p {
      margin: 0;
      color: rgba(255, 255, 255, 0.9);
      max-width: 56ch;
    }

    .highlight-process {
      position: relative;
      z-index: 1;
      margin-top: 22px;
      background: rgba(255, 255, 255, 0.12);
      border-color: rgba(255, 255, 255, 0.18);
      box-shadow: none;
      backdrop-filter: blur(8px);
    }

    .highlight-process > h3 {
      color: #111;
    }

    .highlight-process > p {
      color: #fff;
    }

    .highlight-process .process-step {
      border-color: rgba(255, 255, 255, 0.18);
      background: rgba(255, 255, 255, 0.94);
    }

    .highlight-process .process-step strong {
      color: #213245;
    }

    .highlight-process .process-step p {
      color: #4b5663;
    }

    .contact {
      padding: 6px 0 56px;
    }

    .contact-grid {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 16px;
      align-items: stretch;
    }

    .panel {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.84);
      box-shadow: 0 12px 30px rgba(31, 38, 48, 0.1);
      padding: 18px;
    }

    .panel h3 {
      margin: 0 0 8px;
      font-size: 1.15rem;
    }

    .panel p {
      margin: 0 0 14px;
      color: var(--muted);
    }

    .quote-panel.is-hidden {
      display: none;
    }

    .quote-accordion {
      border: 1px solid rgba(30, 75, 122, 0.12);
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.72);
      overflow: hidden;
    }

    .quote-accordion summary {
      list-style: none;
      cursor: pointer;
      padding: 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
    }

    .quote-accordion summary::-webkit-details-marker {
      display: none;
    }

    .quote-accordion summary::after {
      content: "+";
      font-size: 1.5rem;
      font-weight: 400;
      color: #6b7785;
      flex-shrink: 0;
    }

    .quote-accordion[open] summary::after {
      content: "-";
    }

    .quote-accordion-copy h3 {
      margin: 0 0 6px;
      font-size: 1.25rem;
    }

    .quote-accordion-copy p {
      margin: 0;
    }

    .quote-kicker {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border-radius: 999px;
      padding: 6px 10px;
      margin-bottom: 10px;
      background: rgba(30, 75, 122, 0.09);
      color: #1f4f80;
      font-size: 0.8rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .quote-accordion-body {
      border-top: 1px solid rgba(201, 188, 176, 0.7);
      padding: 0 18px 18px;
    }

    .field-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 10px;
    }

    .field-row.single {
      grid-template-columns: 1fr;
    }

    .input,
    .textarea {
      width: 100%;
      border: 1px solid #c9bcb0;
      border-radius: 12px;
      padding: 10px 12px;
      font: inherit;
      background: #fff;
      color: #18202a;
    }

    .input[type="date"],
    .modal-date {
      cursor: pointer;
    }

    .service-picker {
      margin: 0;
      padding: 14px;
      border: 1px solid #c9bcb0;
      border-radius: 16px;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 242, 235, 0.96));
    }

    .service-picker legend {
      display: inline-block;
      margin: 0 0 8px 6px;
      padding: 2px 10px;
      font-weight: 700;
      color: #213245;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 242, 235, 0.96));
      border-radius: 999px;
      line-height: 1.2;
    }

    .service-picker-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }

    .service-group {
      border: 1px solid rgba(30, 75, 122, 0.1);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.78);
      padding: 12px;
    }

    .service-group h4 {
      margin: 0 0 10px;
      font-size: 0.95rem;
      color: #1f4f80;
    }

    .service-option {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 8px 0;
      color: #243140;
      font-size: 0.92rem;
      cursor: pointer;
    }

    .service-option + .service-option {
      border-top: 1px solid rgba(201, 188, 176, 0.55);
    }

    .service-option input {
      margin-top: 3px;
      accent-color: var(--brand);
    }

    .accordion-group {
      overflow: hidden;
    }

    .accordion-toggle {
      width: 100%;
      border: 1px solid rgba(30, 75, 122, 0.16);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.86);
      color: #1f4f80;
      padding: 8px 10px;
      font: inherit;
      font-size: 0.9rem;
      font-weight: 800;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      cursor: pointer;
      margin-bottom: 8px;
      text-align: left;
    }

    .accordion-toggle::after {
      content: "▸";
      font-size: 0.95rem;
      line-height: 1;
      transition: transform 0.2s ease;
    }

    .accordion-group[data-accordion-open="true"] .accordion-toggle::after {
      transform: rotate(90deg);
    }

    .accordion-panel[hidden] {
      display: none;
    }

    .service-group.accordion-group .accordion-panel:not([hidden]) {
      display: grid;
      gap: 0;
    }

    .checks-group.accordion-group .accordion-toggle {
      border: 1px solid #d8dde5;
      background: #ffffff;
      color: #4e5866;
      font-size: 0.85rem;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      margin-bottom: 6px;
    }

    .checks-group.electrical.accordion-group .accordion-toggle {
      border-color: #bdd0e6;
      color: #1f4f80;
      background: linear-gradient(180deg, #eaf2fb, #f4f8fd);
    }

    .service-picker.has-error {
      border-color: #c64d4d;
      box-shadow: 0 0 0 4px rgba(198, 77, 77, 0.08);
    }

    .field-help {
      display: block;
      margin-top: 6px;
      color: var(--muted);
      font-size: 0.84rem;
    }

    .electrical-scope-note {
      margin-top: 8px;
      font-size: 0.82rem;
      color: #4b5663;
      line-height: 1.35;
    }

    .field-error {
      display: none;
      margin-top: 6px;
      color: #b03c3c;
      font-size: 0.84rem;
      font-weight: 600;
    }

    .field-error.visible {
      display: block;
    }

    .quote-preview {
      margin-top: 12px;
      border: 1px solid rgba(30, 75, 122, 0.12);
      border-radius: 16px;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 239, 231, 0.96));
      padding: 14px;
      display: grid;
      gap: 12px;
    }

    .quote-preview-head h4 {
      margin: 0 0 4px;
      font-size: 1rem;
      color: #1b2a3c;
    }

    .quote-preview-head p {
      margin: 0;
      color: var(--muted);
      font-size: 0.9rem;
    }

    .quote-preview-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .quote-preview-tag,
    .quote-preview-empty {
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      border-radius: 999px;
      padding: 8px 12px;
      font-size: 0.84rem;
      line-height: 1.2;
    }

    .quote-preview-tag {
      background: rgba(30, 75, 122, 0.1);
      color: #1f4f80;
      font-weight: 700;
      border: 1px solid rgba(30, 75, 122, 0.14);
    }

    .quote-preview-empty {
      background: rgba(95, 107, 120, 0.08);
      color: #586473;
      border: 1px dashed rgba(95, 107, 120, 0.22);
    }

    .quote-preview-message {
      border: 1px solid rgba(31, 38, 48, 0.08);
      border-radius: 14px;
      background: #fff;
      padding: 12px;
    }

    .quote-preview-label {
      margin: 0 0 8px;
      font-size: 0.85rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #4f5c6b;
    }

    .quote-preview-body {
      margin: 0;
      white-space: pre-wrap;
      font-family: "Outfit", sans-serif;
      font-size: 0.9rem;
      line-height: 1.5;
      color: #243140;
    }

    .textarea {
      min-height: 110px;
      resize: vertical;
      margin-bottom: 12px;
    }

    .quote-channel-picker {
      margin-top: 10px;
      border: 1px solid rgba(30, 75, 122, 0.12);
      border-radius: 16px;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 238, 230, 0.96));
      padding: 16px;
    }

    .quote-channel-title {
      margin: 0 0 6px;
      font-size: 1rem;
      font-weight: 800;
      color: #1b2a3c;
    }

    .quote-channel-copy {
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 0.92rem;
    }

    .quote-channel-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
    }

    .quote-channel-actions .btn,
    .modal-actions .btn {
      min-width: 150px;
    }

    .channel-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin-top: 10px;
    }

    .channel {
      border: 1px solid #c9bcb0;
      border-radius: 12px;
      padding: 12px;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }

    @media (max-width: 860px) {
      .service-picker-grid {
        grid-template-columns: 1fr;
      }
    }

    .channel strong {
      display: block;
      font-size: 0.98rem;
    }

    .channel small {
      display: block;
      color: var(--muted);
      font-size: 0.84rem;
      line-height: 1.3;
    }

    .channel .btn {
      padding: 9px 14px;
      font-size: 0.88rem;
      white-space: nowrap;
    }

    .process-panel {
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(246, 239, 231, 0.9));
    }

    .process-steps {
      display: grid;
      gap: 12px;
    }

    .process-step {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 12px;
      align-items: flex-start;
      padding: 14px;
      border: 1px solid rgba(30, 75, 122, 0.1);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.82);
    }

    .process-step-number {
      width: 34px;
      height: 34px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      background: linear-gradient(135deg, var(--brand), #3f7fbe);
      color: #fff;
      font-weight: 800;
      box-shadow: 0 8px 18px rgba(30, 75, 122, 0.22);
    }

    .process-step strong {
      display: block;
      margin-bottom: 4px;
      color: #213245;
    }

    .process-step p {
      margin: 0;
      font-size: 0.9rem;
      line-height: 1.42;
    }

    .lists {
      padding: 6px 0 56px;
    }

    .details-cta {
      padding: 0 0 56px;
    }

    .details-cta-inner {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: linear-gradient(150deg, #f7f2eb, #ece2d6);
      padding: 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      box-shadow: 0 12px 30px rgba(31, 38, 48, 0.08);
    }

    .details-cta p {
      margin: 0;
      color: #394453;
      max-width: 64ch;
    }

    .lists-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .dark-list {
      background: #3b3d43;
      color: #fff;
      border-radius: 14px;
      padding: 14px 16px;
      border: 1px solid rgba(255, 255, 255, 0.16);
    }

    .dark-list h3 {
      margin: 0 0 10px;
      font-size: 1.02rem;
      text-transform: uppercase;
      letter-spacing: 0.03em;
    }

    .dark-list ul {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 8px;
      color: #edf1f5;
      font-size: 0.95rem;
    }

    .dark-list .priority {
      color: #ffd39f;
      font-weight: 700;
    }

    .modal {
      position: fixed;
      inset: 0;
      background: rgba(5, 8, 14, 0.56);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 90;
      padding: 16px;
    }

    .modal.active {
      display: flex;
    }

    .modal-card {
      width: min(680px, 100%);
      max-height: 92vh;
      overflow: auto;
      background: #3c3e43;
      color: #fff;
      border-radius: 10px;
      border: 1px solid rgba(255, 255, 255, 0.18);
      box-shadow: 0 26px 50px rgba(3, 6, 12, 0.45);
      padding: 16px;
    }

    .quote-modal-card {
      width: min(1040px, 100%);
    }

    .modal-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 8px;
      margin-bottom: 6px;
    }

    .modal-head h3 {
      margin: 0;
      font-size: 2rem;
      font-family: "DM Serif Display", serif;
      line-height: 1;
    }

    .close-btn {
      border: 0;
      background: transparent;
      color: #f5f7fa;
      font-size: 1.6rem;
      line-height: 1;
      cursor: pointer;
      padding: 2px 4px;
    }

    .modal-sub {
      margin: 0 0 10px;
      color: #e8edf3;
      font-size: 0.95rem;
    }

    .modal-label {
      font-weight: 700;
      display: block;
      margin: 0 0 5px;
      font-size: 0.96rem;
    }

    .modal-input,
    .modal-textarea,
    .modal-date {
      width: 100%;
      border: 1px solid rgba(255, 255, 255, 0.26);
      border-radius: 2px;
      padding: 10px 12px;
      font: inherit;
      color: #111723;
      background: #eef0f3;
      margin-bottom: 10px;
    }

    .checks {
      background: #efefef;
      border: 1px solid #d5d5d5;
      border-radius: 2px;
      padding: 12px;
      color: #1f2430;
      display: grid;
      gap: 12px;
      margin-bottom: 12px;
      font-size: 0.95rem;
    }

    .checks-group {
      display: grid;
      gap: 8px;
      border: 1px solid #d8dde5;
      border-radius: 8px;
      padding: 8px;
      background: #f7f8fa;
    }

    .checks-group-title {
      margin: 0;
      font-size: 0.85rem;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: #4e5866;
      font-weight: 800;
      border-bottom: 1px solid #d8dde5;
      padding-bottom: 3px;
    }

    .checks-group.electrical {
      border: 1px solid #b5c7df;
      background: linear-gradient(180deg, #eaf2fb, #f4f8fd);
      box-shadow: inset 0 0 0 1px rgba(30, 75, 122, 0.08);
    }

    .checks-group.electrical .checks-group-title {
      color: #1f4f80;
      border-bottom-color: #bdd0e6;
      font-size: 0.88rem;
    }

    .checks-group.electrical .checks-grid {
      font-weight: 600;
      color: #213449;
    }

    .checks-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px 14px;
    }

    .checks label {
      display: flex;
      align-items: flex-start;
      gap: 7px;
    }

    .checks input {
      margin-top: 2px;
    }

    .service-option-card {
      display: block;
      border: 1px solid #dde2ea;
      border-radius: 6px;
      background: #fff;
      padding: 8px 10px;
      cursor: pointer;
    }

    .service-option-main {
      display: flex;
      align-items: flex-start;
      gap: 8px;
    }

    .service-option-main input {
      margin-top: 4px;
      flex-shrink: 0;
    }

    .service-option-copy {
      display: grid;
      gap: 4px;
      min-width: 0;
    }

    .service-option-copy strong {
      font-size: 0.9rem;
      line-height: 1.25;
      color: #273241;
    }

    .service-option-desc {
      color: #4b5663;
      font-size: 0.82rem;
      line-height: 1.35;
    }

    .modal-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 10px;
    }

    .modal-channel-help {
      color: #e8edf3;
      margin-top: 10px;
    }

    .footer {
      border-top: 1px solid var(--line);
      background: rgba(255, 249, 242, 0.75);
      padding: 18px 0;
      color: #5a6674;
      font-size: 0.92rem;
    }

    .footer-row {
      display: flex;
      justify-content: center;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      text-align: center;
    }

    .footer-logo {
      width: 220px;
      max-width: 100%;
      height: auto;
      object-fit: contain;
      flex-shrink: 0;
      background: transparent;
    }

    @keyframes rise {
      from {
        opacity: 0;
        transform: translateY(12px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes pulse {
      0%,
      100% {
        transform: scale(1);
        opacity: 0.95;
      }
      50% {
        transform: scale(1.08);
        opacity: 0.6;
      }
    }

    @media (max-width: 980px) {
      .hero-grid,
      .highlight-grid,
      .contact-grid {
        grid-template-columns: 1fr;
      }

      .hero {
        min-height: 560px;
      }

      .coverage-grid {
        grid-template-columns: 1fr;
      }

      .site-directory {
        grid-template-columns: 1fr;
      }

      .cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 640px) {
      .hero {
        padding-top: 76px;
        min-height: 520px;
      }

      .hero-media {
        background-position: 68% center;
      }

      .about-logo {
        width: 51%;
        min-width: 143px;
      }

      .coverage-wrap {
        padding: 16px;
      }

      .cards,
      .hero-list {
        grid-template-columns: 1fr;
      }

      .topbar-inner {
        align-items: center;
        gap: 10px;
        padding: 10px 0;
      }

      .brand {
        gap: 9px;
      }

      .brand img {
        width: 46px;
        height: 46px;
      }

      .brand strong {
        font-size: 0.98rem;
      }

      .brand small {
        font-size: 0.8rem;
        line-height: 1.28;
        max-width: 20ch;
      }

      .btn {
        width: 100%;
      }

      .topbar-actions {
        gap: 8px;
      }

      .nav-dropdown summary {
        padding: 8px 12px;
        font-size: 0.9rem;
      }

      .nav-dropdown summary.menu-toggle {
        width: 42px;
        height: 42px;
        padding: 0;
        font-size: 1.15rem;
      }

      .nav-menu {
        min-width: 210px;
        right: -4px;
      }

      .topbar-cta {
        width: auto;
        min-width: 126px;
        padding: 9px 14px;
        font-size: 0.95rem;
      }

      .hero-actions {
        width: 100%;
      }

      .services-header {
        display: block;
      }

      .services-header h2 {
        margin-bottom: 10px;
      }

      .field-row {
        grid-template-columns: 1fr;
      }

      .channel {
        flex-direction: column;
        align-items: flex-start;
      }

      .quote-accordion summary,
      .process-step {
        grid-template-columns: 1fr;
      }

      .highlight-process {
        margin-top: 18px;
      }

      .quote-channel-actions {
        flex-direction: column;
      }

      .checks {
        grid-template-columns: 1fr;
      }

      .checks-grid {
        grid-template-columns: 1fr;
      }

      .details-cta-inner {
        flex-direction: column;
        align-items: flex-start;
      }

      .directory-card {
        padding: 14px;
      }

      .directory-item {
        gap: 0;
      }

      .directory-item summary {
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
      }

      .directory-item summary::after {
        content: "▾";
        font-size: 0.96rem;
        transition: transform 0.2s ease;
      }

      .directory-item .directory-panel {
        max-height: 700px;
        opacity: 1;
        overflow: hidden;
        transition: max-height 0.28s ease, opacity 0.22s ease;
      }

      .directory-item:not([open]) .directory-panel {
        max-height: 0;
        opacity: 0;
      }

      .directory-item:not([open]) summary::after {
        transform: rotate(-90deg);
      }

      .modal-head h3 {
        font-size: 1.65rem;
      }

      .footer-logo {
        width: 184px;
      }
    }
