/* ==========================================================================
   Industry landing pages — scoped styles
   Reuses :root tokens from style.css (--color-primary #27B1BE, etc.).
   Loaded per-page via $additionalHead. Does NOT modify global components.
   ========================================================================== */

.ind-section {
    padding: 4.5rem 0;
}
.ind-section--alt {
    background: var(--color-light);
}
.ind-section > .container > h2 {
    margin-bottom: 1rem;
}
.ind-lead {
    color: var(--color-text-light);
    font-size: 1.1rem;
    max-width: 760px;
}
.ind-section p {
    line-height: 1.7;
    margin-bottom: 1rem;
    max-width: 820px;
}

/* ---- 1. Hero ---- */
.ind-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, var(--color-light) 0%, var(--color-white) 100%);
    padding: 3.5rem 0 4.5rem;
}
.ind-hero::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 90px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100'%3E%3Cpath fill='%23FFFFFF' d='M0,50 C360,100 720,0 1080,50 C1260,75 1380,75 1440,50 L1440,100 L0,100 Z'%3E%3C/path%3E%3C/svg%3E") no-repeat;
    background-size: cover;
}
.ind-hero .container {
    position: relative;
    z-index: 1;
}
.ind-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 2.5rem;
    align-items: center;
}
.ind-eyebrow {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary);
    background: rgba(39, 177, 190, 0.1);
    padding: 6px 14px;
    border-radius: var(--radius-full);
    margin-bottom: 1.25rem;
}
.ind-hero h1 {
    font-size: clamp(2rem, 4.5vw, 3rem);
    line-height: 1.1;
    margin-bottom: 1.25rem;
}
.ind-hero-subhead {
    color: var(--color-text-light);
    font-size: 1.15rem;
    line-height: 1.65;
    margin-bottom: 1.75rem;
    max-width: 640px;
}
.ind-hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.75rem;
}
.ind-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ind-tags li {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-gray);
    padding: 6px 14px;
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-sm);
}
.ind-hero-visual {
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    text-align: center;
    padding: 2rem;
    box-shadow: var(--shadow-lg);
    position: relative;
    overflow: hidden;
    margin: 0;
}
.ind-hero-visual svg {
    width: 96px;
    height: 96px;
    opacity: 0.95;
}
.ind-hero-visual figcaption {
    position: absolute;
    bottom: 1rem;
    left: 1.25rem;
    right: 1.25rem;
    font-size: 0.85rem;
    opacity: 0.9;
}

/* ---- 3. Audiences ---- */
.ind-audiences {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}
.ind-audience {
    background: var(--color-white);
    border: 1px solid var(--color-gray);
    border-top: 4px solid var(--color-primary);
    border-radius: var(--radius-md);
    padding: 1.75rem;
    box-shadow: var(--shadow-sm);
}
.ind-audience h3 {
    margin-bottom: 0.5rem;
}
.ind-audience-note {
    color: var(--color-text-light);
    font-style: italic;
    font-size: 0.95rem;
    margin-bottom: 1rem;
}
.ind-queries {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ind-queries li {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.8rem;
    color: var(--color-primary-dark);
    background: var(--color-light);
    padding: 4px 10px;
    border-radius: var(--radius-sm);
}

/* ---- 4 & 7. Feature list (icon + title + body) ---- */
.ind-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}
.ind-feature {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.ind-feature-icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    background: rgba(39, 177, 190, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}
.ind-feature-icon svg { width: 22px; height: 22px; }
.ind-feature h3 { font-size: 1.1rem; margin-bottom: 0.35rem; }
.ind-feature p { margin: 0; color: var(--color-text-light); }

/* ---- 5. Content groups ---- */
.ind-content-groups {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    margin: 2rem 0;
}
.ind-content-group {
    background: var(--color-white);
    border: 1px solid var(--color-gray);
    border-radius: var(--radius-md);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
}
.ind-content-group h3 { font-size: 1.05rem; margin-bottom: 0.35rem; }
.ind-content-group p { font-size: 0.95rem; color: var(--color-text-light); margin-bottom: 1rem; }
.ind-schema-note {
    background: rgba(39, 177, 190, 0.06);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--radius-sm);
    padding: 1rem 1.25rem;
}
.ind-schema-note p { margin: 0; }

/* ---- 6 & 12. Bulleted proof / payoff lists ---- */
.ind-bullets {
    list-style: none;
    padding: 0;
    margin: 2rem 0 0;
    display: grid;
    gap: 1rem;
    max-width: 860px;
}
.ind-bullets li {
    position: relative;
    padding-left: 2rem;
    line-height: 1.6;
}
.ind-bullets li::before {
    content: '';
    position: absolute;
    left: 0; top: 4px;
    width: 18px; height: 18px;
    background-color: var(--color-primary);
    border-radius: 50%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-size: 12px;
    background-repeat: no-repeat;
    background-position: center;
}

/* ---- 8. AI search ---- */
.ind-ai-questions {
    display: grid;
    gap: 0.85rem;
    margin: 1.5rem 0 2rem;
    max-width: 720px;
}
.ind-ai-questions blockquote {
    margin: 0;
    background: var(--color-white);
    border-left: 4px solid var(--color-secondary);
    border-radius: var(--radius-sm);
    padding: 0.85rem 1.25rem;
    font-style: italic;
    color: var(--color-text);
    box-shadow: var(--shadow-sm);
}

/* ---- 9. Mistakes ---- */
.ind-mistakes {
    list-style: none;
    padding: 0;
    margin: 2rem 0 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.85rem 2rem;
    max-width: 920px;
}
.ind-mistakes li {
    position: relative;
    padding-left: 1.85rem;
    line-height: 1.5;
}
.ind-mistakes li::before {
    content: '\2715';
    position: absolute;
    left: 0; top: 0;
    color: #FF6B5E;
    font-weight: 700;
}

/* ---- 10. Process ---- */
.ind-process {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1.25rem;
    margin-top: 2.5rem;
}
.ind-phase {
    background: var(--color-white);
    border: 1px solid var(--color-gray);
    border-radius: var(--radius-md);
    padding: 1.5rem 1.25rem;
    box-shadow: var(--shadow-sm);
}
.ind-phase-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-white);
    font-weight: 700;
    margin-bottom: 0.85rem;
}
.ind-phase h3 { font-size: 1rem; margin-bottom: 0.4rem; }
.ind-phase p { font-size: 0.9rem; color: var(--color-text-light); margin: 0; }

/* ---- 11. Metrics table ---- */
.ind-metrics {
    width: 100%;
    border-collapse: collapse;
    margin-top: 2rem;
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.ind-metrics caption {
    caption-side: bottom;
    color: var(--color-text-light);
    font-size: 0.95rem;
    padding-top: 1rem;
    text-align: left;
}
.ind-metrics th,
.ind-metrics td {
    text-align: left;
    padding: 0.9rem 1.25rem;
    border-bottom: 1px solid var(--color-gray);
}
.ind-metrics thead th {
    background: var(--color-primary);
    color: var(--color-white);
    font-weight: 600;
}
.ind-metrics tbody tr:last-child td { border-bottom: none; }
.ind-metrics tbody tr:nth-child(even) { background: var(--color-light); }

/* ---- Responsive ---- */
@media (max-width: 980px) {
    .ind-hero-grid { grid-template-columns: 1fr; }
    .ind-hero-visual { order: -1; max-width: 480px; }
    .ind-audiences { grid-template-columns: 1fr; }
    .ind-process { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .ind-section { padding: 3rem 0; }
    .ind-features,
    .ind-content-groups,
    .ind-mistakes { grid-template-columns: 1fr; }
    .ind-process { grid-template-columns: 1fr; }
    .ind-metrics thead { display: none; }
    .ind-metrics, .ind-metrics tbody, .ind-metrics tr, .ind-metrics td { display: block; width: 100%; }
    .ind-metrics tr { border-bottom: 2px solid var(--color-gray); padding: 0.5rem 0; }
    .ind-metrics td { border: none; padding: 0.35rem 1.25rem; }
    .ind-metrics td:first-child { font-weight: 600; }
    .ind-metrics td:last-child { color: var(--color-text-light); }
}
