/*
 * Builder Contract v1 adapter for the private WebIndigo site template.
 *
 * These rules are dormant until a section has an explicit non-default
 * semantic presentation value stored by WebIndigo CMS. Existing pages keep
 * their original site.css appearance when no presentation is assigned.
 */

/* Text blocks: semantic tone. */
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-soft {
    padding: clamp(26px, 3vw, 38px);
    border: 1px solid var(--wi-border);
    border-radius: 24px;
    background: var(--wi-surface-soft);
    color: var(--wi-text);
    box-shadow: var(--wi-shadow-sm);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent {
    padding: clamp(28px, 3.2vw, 42px);
    border: 1px solid transparent;
    border-radius: 24px;
    background:
        radial-gradient(circle at 84% 0%, rgba(253, 186, 116, 0.28), transparent 34%),
        linear-gradient(135deg, var(--wi-primary), var(--wi-primary-deep));
    color: #ffffff;
    box-shadow: 0 22px 52px rgba(194, 65, 12, 0.2);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast {
    padding: clamp(28px, 3.2vw, 42px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 24px;
    background:
        radial-gradient(circle at 82% 0%, rgba(249, 115, 22, 0.15), transparent 34%),
        linear-gradient(135deg, #382016, #25140f);
    color: #ffffff;
    box-shadow: 0 24px 58px rgba(37, 20, 15, 0.18);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-card__eyebrow,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-card__eyebrow {
    color: #ffddc7;
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-card__title,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-card__text,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-card__content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content h2,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content h3,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content h4,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content p,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content li,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-card__title,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-card__text,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-card__content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content h2,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content h3,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content h4,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content p,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content li {
    color: rgba(255, 255, 255, 0.9);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-card__title,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content h2,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-content h3,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-card__title,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content h2,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-content h3 {
    color: #ffffff;
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-accent .webindigo-card__link,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--tone-contrast .webindigo-card__link {
    color: #ffffff;
}

/* Text blocks: semantic alignment. */
.webindigo-card--text_block.cms-section-presentation--align-left {
    text-align: left;
}

.webindigo-card--text_block.cms-section-presentation--align-center {
    text-align: center;
}

.webindigo-card--text_block.cms-section-presentation--align-center .webindigo-card__link {
    justify-content: center;
}

/* Text blocks: semantic spacing. */
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--spacing-compact {
    padding: clamp(18px, 2vw, 24px);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--spacing-spacious {
    padding: clamp(38px, 4.5vw, 58px);
}

/* CTA blocks: semantic tone is applied to the existing inner CTA component. */
.webindigo-card--cta_block.cms-section-presentation--tone-soft .webindigo-cta {
    border: 1px solid var(--wi-border);
    background: linear-gradient(135deg, #fffaf6, #fff1e8);
    color: var(--wi-text);
    box-shadow: var(--wi-shadow-sm);
}

.webindigo-card--cta_block.cms-section-presentation--tone-soft .webindigo-cta .webindigo-card__eyebrow {
    color: var(--wi-primary-deep);
}

.webindigo-card--cta_block.cms-section-presentation--tone-soft .webindigo-cta__title {
    color: var(--wi-text);
}

.webindigo-card--cta_block.cms-section-presentation--tone-soft .webindigo-cta__text {
    color: var(--wi-text-soft);
}

body.webindigo-site .webindigo-card--cta_block.cms-section-presentation--tone-soft a.webindigo-button--light {
    background: var(--wi-primary);
    color: #ffffff;
    box-shadow: 0 14px 32px rgba(249, 115, 22, 0.22);
}

.webindigo-card--cta_block.cms-section-presentation--tone-accent .webindigo-cta {
    background:
        radial-gradient(circle at 82% 0%, rgba(255, 237, 213, 0.26), transparent 34%),
        linear-gradient(135deg, var(--wi-primary), var(--wi-primary-deep));
    color: #ffffff;
    box-shadow: 0 30px 72px rgba(194, 65, 12, 0.28);
}

.webindigo-card--cta_block.cms-section-presentation--tone-contrast .webindigo-cta {
    background:
        radial-gradient(circle at 82% 0%, rgba(249, 115, 22, 0.16), transparent 34%),
        linear-gradient(135deg, #382016, #25140f);
    color: #ffffff;
    box-shadow: 0 30px 72px rgba(37, 20, 15, 0.22);
}

.webindigo-card--cta_block.cms-section-presentation--tone-contrast .webindigo-cta .webindigo-card__eyebrow {
    color: #f6b48c;
}

/* CTA blocks: semantic alignment. */
.webindigo-card--cta_block.cms-section-presentation--align-left .webindigo-cta {
    text-align: left;
}

.webindigo-card--cta_block.cms-section-presentation--align-center .webindigo-cta {
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.webindigo-card--cta_block.cms-section-presentation--align-center .webindigo-cta > div {
    display: grid;
    justify-items: center;
}

/* CTA blocks: semantic spacing. */
.webindigo-card--cta_block.cms-section-presentation--spacing-compact .webindigo-cta {
    min-height: 0;
    padding: clamp(24px, 3vw, 36px);
}

.webindigo-card--cta_block.cms-section-presentation--spacing-spacious .webindigo-cta {
    padding: clamp(48px, 6vw, 82px);
}

@media (max-width: 760px) {
    .webindigo-card--cta_block.cms-section-presentation--align-center .webindigo-cta {
        align-items: center;
    }
}

/* Explicit custom background selected for one block through Builder Theme Contract. */
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom {
    border-color: color-mix(in srgb, var(--cms-section-foreground-color) 18%, transparent);
    background: var(--cms-section-background-color);
    color: var(--cms-section-foreground-color);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__eyebrow,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__title,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__text,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content h2,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content h3,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content h4,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content p,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content li,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__link {
    color: var(--cms-section-foreground-color);
}

.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__text,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-card__content,
.webindigo-zone .webindigo-card--text_block.cms-section-presentation--background-color-custom .webindigo-content {
    opacity: 0.9;
}

.webindigo-card--cta_block.cms-section-presentation--background-color-custom .webindigo-cta {
    border-color: color-mix(in srgb, var(--cms-section-foreground-color) 18%, transparent);
    background: var(--cms-section-background-color);
    color: var(--cms-section-foreground-color);
}

.webindigo-card--cta_block.cms-section-presentation--background-color-custom .webindigo-cta .webindigo-card__eyebrow,
.webindigo-card--cta_block.cms-section-presentation--background-color-custom .webindigo-cta__title,
.webindigo-card--cta_block.cms-section-presentation--background-color-custom .webindigo-cta__text {
    color: var(--cms-section-foreground-color);
}

.webindigo-card--cta_block.cms-section-presentation--background-color-custom .webindigo-cta__text {
    opacity: 0.9;
}

body.webindigo-site .webindigo-card--cta_block.cms-section-presentation--background-color-custom a.webindigo-button--light {
    border-color: color-mix(in srgb, var(--cms-section-foreground-color) 20%, transparent);
    background: var(--cms-section-foreground-color);
    color: var(--cms-section-background-color);
}

/* Dynamic Layout: standalone page sections created by WebIndigo Builder / AI. */
.webindigo-layout-section {
    position: relative;
    padding-top: clamp(62px, 6vw, 94px);
    padding-bottom: clamp(62px, 6vw, 94px);
    background: var(--wi-surface);
    color: var(--wi-text);
}

.webindigo-layout-section--tone-soft {
    background: var(--wi-primary-soft, var(--wi-bg));
}

.webindigo-layout-section--tone-accent {
    background:
        radial-gradient(circle at 84% 0%, color-mix(in srgb, var(--wi-accent) 24%, transparent), transparent 34%),
        linear-gradient(135deg, var(--wi-primary), var(--wi-primary-deep));
    color: var(--wi-text-light, #ffffff);
}

.webindigo-layout-section--tone-contrast {
    background: var(--wi-bg-strong, var(--wi-primary-deep));
    color: var(--wi-text-light, #ffffff);
}

.webindigo-layout-section--spacing-compact {
    padding-top: 34px;
    padding-bottom: 34px;
}

.webindigo-layout-section--spacing-spacious {
    padding-top: clamp(86px, 9vw, 132px);
    padding-bottom: clamp(86px, 9vw, 132px);
}

.webindigo-layout-section--tone-accent .webindigo-zone__editor-label,
.webindigo-layout-section--tone-contrast .webindigo-zone__editor-label {
    color: currentColor;
    opacity: 0.72;
}

/* Exact safe background selected for one standalone Dynamic Layout section. */
.webindigo-layout-section--background-color-custom {
    background: var(--cms-layout-section-background-color);
    color: var(--cms-layout-section-foreground-color);
}

.webindigo-layout-section--background-color-custom .webindigo-zone__editor-label {
    color: currentColor;
}

/* Page Composition: semantic heading and safe stack/grid/split primitives. */
.webindigo-layout-section__heading {
    max-width: 800px;
    margin-bottom: clamp(30px, 4.2vw, 54px);
}

.webindigo-layout-section__eyebrow {
    color: var(--wi-primary-deep);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.webindigo-layout-section__title {
    max-width: 780px;
    margin: 10px 0 0;
    color: currentColor;
    font-size: clamp(34px, 4.2vw, 56px);
    font-weight: 850;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.webindigo-layout-section__text {
    max-width: 720px;
    margin-top: 20px;
    color: currentColor;
    font-size: clamp(16px, 1.3vw, 18px);
    line-height: 1.68;
    opacity: 0.72;
}

.webindigo-layout-section--tone-accent .webindigo-layout-section__eyebrow,
.webindigo-layout-section--tone-contrast .webindigo-layout-section__eyebrow,
.webindigo-layout-section--background-color-custom .webindigo-layout-section__eyebrow {
    color: currentColor;
    opacity: 0.8;
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items {
    display: grid;
    min-width: 0;
}

.webindigo-layout-section__gap--compact {
    gap: 14px;
}

.webindigo-layout-section__gap--default {
    gap: 22px;
}

.webindigo-layout-section__gap--spacious {
    gap: clamp(30px, 4vw, 52px);
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--stack {
    grid-template-columns: minmax(0, 1fr);
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* In grid mode ordinary semantic blocks become cards without changing their data type. */
.webindigo-layout-section__items--grid > .webindigo-card--text_block {
    min-height: 230px;
    padding: clamp(26px, 3vw, 40px);
    border: 1px solid var(--wi-border);
    border-radius: 25px;
    background: var(--wi-surface);
    box-shadow: var(--wi-shadow-sm);
    transition:
        transform var(--wi-transition),
        box-shadow var(--wi-transition),
        border-color var(--wi-transition);
}

.webindigo-layout-section__items--grid > .webindigo-card--text_block:hover {
    border-color: #e2d5ce;
    box-shadow: var(--wi-shadow-md);
    transform: translateY(-4px);
}

.webindigo-layout-section__items--grid > .webindigo-card--text_block:nth-child(3n + 2):not(.cms-section-presentation--tone-soft):not(.cms-section-presentation--tone-accent):not(.cms-section-presentation--tone-contrast):not(.cms-section-presentation--background-color-custom) {
    background: linear-gradient(145deg, var(--wi-surface), #fff2e8);
}

.webindigo-layout-section__items--grid > .webindigo-card--text_block:nth-child(3n):not(.cms-section-presentation--tone-soft):not(.cms-section-presentation--tone-accent):not(.cms-section-presentation--tone-contrast):not(.cms-section-presentation--background-color-custom) {
    background: linear-gradient(145deg, var(--wi-surface), #fff5f2);
}

.webindigo-layout-section__items--grid > .webindigo-card--text_block .webindigo-card__eyebrow {
    display: inline-grid;
    place-items: center;
    min-width: 42px;
    min-height: 42px;
    padding: 8px 11px;
    border-radius: 13px;
    background: var(--wi-primary-soft);
    color: var(--wi-primary-deep);
    font-size: 11px;
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--split.webindigo-layout-section__ratio--wide-left {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--split.webindigo-layout-section__ratio--wide-right {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}

.webindigo-layout-section__items--split.webindigo-layout-section__align--start {
    align-items: start;
}

.webindigo-layout-section__items--split.webindigo-layout-section__align--center {
    align-items: center;
}

.webindigo-layout-section__items--split.webindigo-layout-section__align--stretch {
    align-items: stretch;
}

.webindigo-layout-section__items--split > .webindigo-card--text_block {
    padding: clamp(12px, 1.8vw, 24px) 0;
}

.webindigo-layout-section__items--split > .webindigo-card--banner_link .webindigo-banner {
    height: 100%;
}

@media (max-width: 1040px) {
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--3,
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--split,
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--split.webindigo-layout-section__ratio--wide-left,
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--split.webindigo-layout-section__ratio--wide-right {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 700px) {
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--2,
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--3,
    .webindigo-layout-section .webindigo-zone__items.webindigo-layout-section__items--grid.webindigo-layout-section__columns--4 {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Explicit validated component-level visual overrides. Values come only from
   CMS presentation contract as safe #RRGGBB custom properties. */
body.webindigo-site .webindigo-card.cms-section-presentation--border-color-custom {
    border-color: var(--cms-section-border-color) !important;
}

body.webindigo-site .webindigo-card.cms-section-presentation--button-background-color-custom .webindigo-button,
body.webindigo-site .webindigo-card.cms-section-presentation--button-background-color-custom .webindigo-feature-card__link,
body.webindigo-site .webindigo-card.cms-section-presentation--button-background-color-custom .webindigo-pricing-card__link,
body.webindigo-site .webindigo-card.cms-section-presentation--button-background-color-custom .webindigo-card__link {
    background: var(--cms-section-button-background-color) !important;
}

body.webindigo-site .webindigo-card.cms-section-presentation--button-text-color-custom .webindigo-button,
body.webindigo-site .webindigo-card.cms-section-presentation--button-text-color-custom .webindigo-feature-card__link,
body.webindigo-site .webindigo-card.cms-section-presentation--button-text-color-custom .webindigo-pricing-card__link,
body.webindigo-site .webindigo-card.cms-section-presentation--button-text-color-custom .webindigo-card__link {
    color: var(--cms-section-button-text-color) !important;
}

body.webindigo-site .webindigo-card.cms-section-presentation--button-border-color-custom .webindigo-button,
body.webindigo-site .webindigo-card.cms-section-presentation--button-border-color-custom .webindigo-feature-card__link,
body.webindigo-site .webindigo-card.cms-section-presentation--button-border-color-custom .webindigo-pricing-card__link,
body.webindigo-site .webindigo-card.cms-section-presentation--button-border-color-custom .webindigo-card__link {
    border-color: var(--cms-section-button-border-color) !important;
}

body.webindigo-site .webindigo-card.cms-section-presentation--text-color-custom .webindigo-card__content,
body.webindigo-site .webindigo-card.cms-section-presentation--text-color-custom .webindigo-card__text,
body.webindigo-site .webindigo-card.cms-section-presentation--text-color-custom .webindigo-feature-card__text,
body.webindigo-site .webindigo-card.cms-section-presentation--text-color-custom .webindigo-pricing-card__text {
    color: var(--cms-section-text-color) !important;
}

body.webindigo-site .webindigo-card.cms-section-presentation--heading-color-custom .webindigo-card__title,
body.webindigo-site .webindigo-card.cms-section-presentation--heading-color-custom .webindigo-feature-card__title,
body.webindigo-site .webindigo-card.cms-section-presentation--heading-color-custom .webindigo-pricing-card__price {
    color: var(--cms-section-heading-color) !important;
}
