/* Explain: Styles for rich text content, map elements, and legend. */
/* Rich text content (managed content areas) */
.richtext p {
    margin-bottom: 1rem;
    line-height: 1.75;
}

.richtext p:last-child {
    margin-bottom: 0;
}

.richtext ul,
.richtext ol {
    margin: 1rem 0;
    padding-left: 1.5rem;
}

.richtext ul {
    list-style: disc;
}

.richtext ol {
    list-style: decimal;
}

.richtext li {
    margin-bottom: 0.5rem;
    line-height: 1.75;
}

.richtext h2,
.richtext h3 {
    color: var(--text-color);
    font-family: var(--font-heading);
    font-weight: 700;
    margin: 1.5rem 0 0.75rem;
}

.richtext a {
    color: var(--primary-color);
    text-decoration: underline;
}

/* Clickable state regions on the licensure map.
   Each region is clipped to an outline shaped like the state itself, so both the
   hover highlight and the tappable area follow the state rather than a rectangle. */
.map-hotspot {
    background-color: transparent;
    transition: background-color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.map-hotspot:hover,
.map-hotspot:active {
    background-color: rgba(0, 0, 0, 0.16);
}

.map-hotspot[data-status="licensed"]:hover,
.map-hotspot[data-status="licensed"]:active {
    background-color: rgba(255, 255, 255, 0.3);
}

.map-hotspot:focus-visible {
    outline: none;
    background-color: rgba(0, 0, 0, 0.32);
}

.map-hotspot[data-status="licensed"]:focus-visible {
    background-color: rgba(255, 255, 255, 0.5);
}

/* State outlines */
.map-hotspot[data-state="Washington"] { clip-path: polygon(0% 18%, 55% 0%, 100% 8%, 100% 92%, 18% 100%, 2% 60%); }
.map-hotspot[data-state="Oregon"] { clip-path: polygon(2% 10%, 88% 0%, 100% 30%, 96% 92%, 26% 100%, 0% 58%); }
.map-hotspot[data-state="California"] { clip-path: polygon(20% 0%, 100% 0%, 80% 55%, 55% 100%, 0% 92%, 30% 50%); }
.map-hotspot[data-state="Idaho"] { clip-path: polygon(30% 0%, 72% 0%, 78% 34%, 92% 58%, 84% 100%, 6% 100%, 0% 46%, 22% 18%); }
.map-hotspot[data-state="Montana"] { clip-path: polygon(0% 12%, 100% 0%, 100% 90%, 4% 100%); }
.map-hotspot[data-state="North Dakota"] { clip-path: polygon(0% 4%, 100% 10%, 96% 100%, 2% 90%); }
.map-hotspot[data-state="Minnesota"] { clip-path: polygon(18% 0%, 66% 0%, 74% 26%, 90% 40%, 72% 100%, 4% 100%, 10% 62%, 24% 42%); }
.map-hotspot[data-state="Wisconsin"] { clip-path: polygon(10% 0%, 62% 0%, 66% 18%, 96% 42%, 82% 100%, 0% 100%, 2% 36%); }
.map-hotspot[data-state="Pennsylvania"] { clip-path: polygon(0% 0%, 100% 0%, 100% 76%, 70% 100%, 0% 100%); }
.map-hotspot[data-state="Maine"] { clip-path: polygon(34% 0%, 66% 6%, 100% 40%, 76% 72%, 28% 100%, 10% 62%, 2% 22%); }
.map-hotspot[data-state="Utah"] { clip-path: polygon(0% 0%, 100% 0%, 100% 84%, 62% 100%, 0% 100%); }
.map-hotspot[data-state="Colorado"] { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
.map-hotspot[data-state="Arizona"] { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 28% 100%, 16% 18%); }
.map-hotspot[data-state="New Mexico"] { clip-path: polygon(10% 0%, 100% 0%, 100% 100%, 0% 100%); }
.map-hotspot[data-state="Kansas"] { clip-path: polygon(0% 6%, 100% 0%, 100% 94%, 18% 100%, 0% 92%); }
.map-hotspot[data-state="Alaska"] { clip-path: polygon(0% 34%, 18% 0%, 58% 12%, 100% 34%, 84% 100%, 28% 86%, 2% 68%); }
.map-hotspot[data-state="Hawaii"] { clip-path: polygon(0% 58%, 22% 26%, 40% 50%, 58% 44%, 74% 66%, 100% 88%, 80% 100%, 50% 78%, 20% 76%); }
.map-hotspot[data-state="Vermont"] { clip-path: polygon(24% 0%, 88% 0%, 100% 100%, 12% 100%); }
.map-hotspot[data-state="New Hampshire"] { clip-path: polygon(0% 0%, 74% 0%, 100% 26%, 58% 100%, 0% 100%); }
.map-hotspot[data-state="Massachusetts"] { clip-path: polygon(0% 24%, 68% 0%, 100% 24%, 94% 68%, 18% 100%, 0% 76%); }
.map-hotspot[data-state="Rhode Island"] { clip-path: polygon(0% 34%, 78% 0%, 100% 58%, 22% 100%); }
.map-hotspot[data-state="Connecticut"] { clip-path: polygon(0% 0%, 100% 0%, 100% 58%, 22% 100%); }
.map-hotspot[data-state="Maryland"] { clip-path: polygon(0% 0%, 58% 8%, 66% 50%, 100% 44%, 100% 84%, 18% 100%, 0% 68%); }
.map-hotspot[data-state="New Jersey"] { clip-path: polygon(12% 0%, 58% 8%, 100% 34%, 74% 100%, 24% 100%, 0% 52%); }
.map-hotspot[data-state="Delaware"] { clip-path: polygon(22% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 18%); }
.map-hotspot[data-state="District of Columbia"] { clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); }
.map-hotspot[data-state="Nevada"] { clip-path: polygon(12% 0%, 100% 0%, 86% 100%, 0% 80%); }
.map-hotspot[data-state="Wyoming"] { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
.map-hotspot[data-state="South Dakota"] { clip-path: polygon(0% 2%, 100% 8%, 100% 92%, 0% 98%); }
.map-hotspot[data-state="Iowa"] { clip-path: polygon(0% 12%, 100% 0%, 100% 88%, 4% 100%); }
.map-hotspot[data-state="Nebraska"] { clip-path: polygon(0% 10%, 100% 0%, 100% 90%, 0% 100%); }
.map-hotspot[data-state="New York"] { clip-path: polygon(0% 34%, 36% 0%, 100% 12%, 96% 68%, 58% 68%, 26% 100%, 0% 72%); }
.map-hotspot[data-state="Michigan"] { clip-path: polygon(16% 0%, 62% 8%, 100% 34%, 60% 52%, 52% 100%, 16% 100%, 0% 64%); }
.map-hotspot[data-state="Ohio"] { clip-path: polygon(0% 8%, 100% 0%, 100% 100%, 4% 100%); }
.map-hotspot[data-state="Illinois"] { clip-path: polygon(12% 0%, 100% 6%, 100% 90%, 36% 100%, 0% 52%); }
.map-hotspot[data-state="Indiana"] { clip-path: polygon(0% 8%, 100% 0%, 94% 100%, 0% 100%); }
.map-hotspot[data-state="Missouri"] { clip-path: polygon(0% 8%, 54% 0%, 58% 44%, 100% 38%, 100% 100%, 0% 100%); }
.map-hotspot[data-state="Kentucky"] { clip-path: polygon(0% 14%, 100% 0%, 100% 88%, 58% 100%, 0% 94%); }
.map-hotspot[data-state="West Virginia"] { clip-path: polygon(0% 32%, 38% 0%, 100% 14%, 100% 48%, 38% 100%, 8% 78%); }
.map-hotspot[data-state="Virginia"] { clip-path: polygon(0% 0%, 100% 0%, 100% 96%, 26% 100%, 0% 60%); }
.map-hotspot[data-state="Tennessee"] { clip-path: polygon(0% 10%, 100% 0%, 100% 100%, 0% 92%); }
.map-hotspot[data-state="North Carolina"] { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 24% 100%); }
.map-hotspot[data-state="Arkansas"] { clip-path: polygon(26% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 32%); }
.map-hotspot[data-state="Oklahoma"] { clip-path: polygon(0% 34%, 28% 32%, 28% 6%, 100% 0%, 100% 92%, 6% 100%); }
.map-hotspot[data-state="Texas"] { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 28% 100%, 28% 52%, 0% 44%); }
.map-hotspot[data-state="Louisiana"] { clip-path: polygon(0% 0%, 100% 0%, 100% 66%, 74% 100%, 30% 88%, 0% 56%); }
.map-hotspot[data-state="Mississippi"] { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 26% 100%, 0% 68%); }
.map-hotspot[data-state="Alabama"] { clip-path: polygon(14% 0%, 100% 0%, 100% 100%, 20% 100%, 0% 40%); }
.map-hotspot[data-state="Georgia"] { clip-path: polygon(0% 0%, 100% 0%, 94% 100%, 12% 100%); }
.map-hotspot[data-state="South Carolina"] { clip-path: polygon(6% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 34%); }
.map-hotspot[data-state="Florida"] { clip-path: polygon(0% 0%, 100% 0%, 100% 56%, 58% 100%, 24% 100%, 0% 86%); }

/* Map legend — HTML legend that replaces the printed legend on the map artwork.
   The overlay covers the artwork's own legend strip and blends with the white
   margin, so the map always shows the correct wording at every screen size. */
.map-legend-frame {
    container-type: inline-size;
}

.map-legend {
    position: absolute;
    left: 0;
    top: 90%;
    width: 100%;
    height: 10%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(1.25rem, 5cqw, 3.5rem);
    background-color: #ffffff;
}

.map-legend-item {
    display: inline-flex;
    align-items: center;
    gap: clamp(0.4rem, 1.2cqw, 0.75rem);
}

.map-legend-label {
    color: var(--text-color);
    font-weight: 600;
    white-space: nowrap;
    font-size: clamp(0.55rem, 2cqw, 1rem);
}

.map-legend-swatch {
    flex-shrink: 0;
    width: clamp(0.85rem, 3cqw, 1.6rem);
    height: clamp(0.85rem, 3cqw, 1.6rem);
    border-radius: 0.25rem;
}

.map-legend-swatch--licensed {
    background-color: var(--map-licensed-color);
}

.map-legend-swatch--unlicensed {
    background-color: var(--map-striped-base);
    background-image: repeating-linear-gradient(
        -45deg,
        var(--map-striped-line) 0,
        var(--map-striped-line) 3px,
        var(--map-striped-base) 3px,
        var(--map-striped-base) 6px
    );
}

/* Light green diagonal-striped panel for the non-licensed states notice,
   matching the striped fill of non-licensed states on the map. */
.striped-panel {
    background-color: #f7fbf5;
    background-image: repeating-linear-gradient(
        -45deg,
        #e2eedc 0,
        #e2eedc 6px,
        #f7fbf5 6px,
        #f7fbf5 12px
    );
}