/* NSW Wide Renovations — brand icon system */

.brand-icon {
  display: block;
  flex-shrink: 0;
  width: var(--icon-size, 2rem);
  height: var(--icon-size, 2rem);
  max-width: var(--icon-size, 2rem);
  max-height: var(--icon-size, 2rem);
  object-fit: contain;
  object-position: center;
}

.brand-icon--nav { --icon-size: 1.5rem; }
.brand-icon--tile { --icon-size: 2.75rem; }
.brand-icon--trust { --icon-size: 3.5rem; }
.brand-icon--feature { --icon-size: 3.25rem; }
.brand-icon--process { --icon-size: 3rem; }
.brand-icon--service { --icon-size: 2.5rem; }
.brand-icon--footer { --icon-size: 1.375rem; }

.icon-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.icon-slot--feature {
  width: 4.5rem;
  height: 4.5rem;
  min-width: 4.5rem;
  min-height: 4.5rem;
  padding: 0.35rem;
  border-radius: 1rem;
  background: linear-gradient(145deg, #EAF3FD 0%, #ffffff 100%);
  border: 1px solid rgba(13, 91, 211, 0.18);
  box-shadow: 0 8px 20px rgba(13, 91, 211, 0.12);
}

.icon-slot--trust {
  width: 3.5rem;
  height: 3.5rem;
  min-width: 3.5rem;
  min-height: 3.5rem;
  padding: 0.25rem;
  border-radius: 0.75rem;
  background: #EAF3FD;
}

.icon-slot--process {
  width: 4.5rem;
  height: 4.5rem;
  min-width: 4.5rem;
  min-height: 4.5rem;
  padding: 0.35rem;
  border-radius: 9999px;
  background: #EAF3FD;
  border: 2px solid rgba(13, 91, 211, 0.28);
}

.icon-slot--service {
  width: 3.75rem;
  height: 3.75rem;
  min-width: 3.75rem;
  min-height: 3.75rem;
  padding: 0.55rem;
  border-radius: 1rem;
  background: linear-gradient(160deg, #EAF3FD 0%, #ffffff 72%);
  border: 1px solid rgba(13, 91, 211, 0.16);
  box-shadow: 0 6px 16px rgba(13, 91, 211, 0.1);
}

.icon-slot--feature img.brand-icon,
.icon-slot--trust img.brand-icon,
.icon-slot--process img.brand-icon,
.icon-slot--service img.brand-icon {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain;
}

.svc-brand-icon {
  width: 2.75rem;
  height: 2.75rem;
  object-fit: contain;
}

/* Homepage service cards — premium “What’s included” disclosure */
.svc-card__include {
  border-top: 1px solid rgba(8, 25, 35, 0.08);
}

.svc-card__include-toggle {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0;
  padding: 0.65rem 0 0.35rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  color: #081923;
  font: inherit;
  transition: color 0.25s ease;
}

.svc-card__include-toggle:hover {
  color: #0D5BD3;
}

.svc-card__include-toggle:focus {
  outline: none;
}

.svc-card__include-toggle:focus-visible {
  outline: 2px solid #0D5BD3;
  outline-offset: 3px;
  border-radius: 0.25rem;
}

.svc-card__include-label {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.svc-card__chevron {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: #0D5BD3;
  opacity: 0.85;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
}

.svc-card__include-toggle:hover .svc-card__chevron {
  opacity: 1;
}

.svc-card__include.is-open .svc-card__chevron {
  transform: rotate(180deg);
}

.svc-card__include-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.svc-card__include.is-open .svc-card__include-panel {
  grid-template-rows: 1fr;
}

.svc-card__include-clip {
  overflow: hidden;
  min-height: 0;
}

.svc-card__include-list {
  margin: 0;
  padding: 0.35rem 0 0.55rem;
  list-style: none;
  opacity: 0;
  transform: translateY(-6px);
  transition:
    opacity 0.28s ease,
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

.svc-card__include.is-open .svc-card__include-list {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.06s;
}

.svc-card__include-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.35rem 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #4b5563;
  border-bottom: 1px solid rgba(8, 25, 35, 0.05);
}

.svc-card__include-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.svc-card__include-dot {
  display: block;
  width: 0.375rem;
  height: 0.375rem;
  margin-top: 0.45rem;
  flex-shrink: 0;
  border-radius: 9999px;
  background: #0D5BD3;
  box-shadow: 0 0 0 3px rgba(13, 91, 211, 0.12);
}

@media (prefers-reduced-motion: reduce) {
  .svc-card__include-panel,
  .svc-card__include-list,
  .svc-card__chevron {
    transition: none;
  }

  .svc-card__include-list {
    transform: none;
  }
}
