/* Shared dynamic block foundations. */
.brise-section { padding: 120px 0; }
.brise-section-heading { margin-bottom: 55px; }
.brise-section-heading h2, .brise-sos h2, .brise-brief h2, .brise-contact-form-intro h2 { max-width: 820px; margin: 0; font-size: clamp(38px, 4.4vw, 62px); line-height: 1.02; letter-spacing: -3px; }
.brise-section-heading em, .brise-sos em, .brise-brief em { color: var(--brise-yellow, #ffc400); font-style: normal; }

/* Case explorer. */
.brise-cases { padding-block: 75px 80px; position: relative; background: var(--brise-paper, #f1ecdf); color: var(--brise-paper-ink, #171b1d); }
.brise-anchor-target { position: absolute; top: 0; }
.brise-cases .brise-eyebrow { color: var(--brise-paper-accent, #6f4f00); }
.brise-explorer-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.brise-case-switcher { width: min(100%,390px); flex: 0 1 390px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; padding: 5px; border: 1px solid rgba(20,25,27,.17); border-radius: 9px; background: rgba(20,25,27,.04); }
.brise-case-switcher button, .brise-stage-tabs button { border: 0; background: transparent; color: #aeb3b5; cursor: pointer; }
.brise-case-switcher button { min-width: 0; min-height: 44px; padding: 0 8px; border-radius: 6px; color: #4f5658; font-size: 12px; font-weight: 800; white-space: nowrap; }
.brise-case-switcher button[aria-selected=true] { background: var(--brise-yellow, #ffc400); color: #15191b; }
.brise-case-shell { min-height: 560px; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); overflow: hidden; border: 1px solid rgba(20,25,27,.22); border-radius: 20px; background: #10171b; box-shadow: 0 30px 65px rgba(24,28,29,.12); }
.brise-case-visual { min-width: 0; position: relative; overflow: hidden; background: #070c0f; }
.brise-case-image { min-height: 560px; margin: 0; overflow: hidden; }
.brise-case-image img { width: 100%; height: 100%; min-height: 560px; display: block; object-fit: cover; object-position: top center; }
.brise-case-shell[data-image-mode="phone"] { min-height: 720px; grid-template-columns: minmax(340px,.8fr) minmax(0,1.2fr); }
.brise-case-shell[data-image-mode="phone"] .brise-case-visual { min-height: 560px; background: transparent; }
.brise-case-shell[data-image-mode="phone"] .brise-case-image { height: auto; min-height: 0; padding: 34px 44px; position: absolute; inset: 0; display: grid; place-items: center; box-sizing: border-box; }
.brise-case-shell[data-image-mode="phone"] .brise-case-image img { width: auto; height: 100%; min-height: 0; max-width: min(72%,480px); position: relative; z-index: 1; box-sizing: border-box; object-fit: contain; border: 8px solid #172025; border-radius: 28px; background: white; box-shadow: 0 28px 55px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.12); }
.brise-case-shell[data-image-mode="phone"] .brise-case-visual::after,
.brise-case-shell[data-image-mode="phone"] .brise-case-visual-label { display: none; }
.brise-case-shell[data-image-mode="phone"] .brise-case-story { border-left: 1px solid rgba(255,255,255,.12); }
.brise-case-visual::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 45%, rgba(4,8,10,.9)); }
.brise-case-visual-label { position: absolute; z-index: 2; right: 34px; bottom: 30px; left: 34px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.brise-case-visual-label span { color: var(--brise-yellow, #ffc400); text-transform: uppercase; letter-spacing: 1.6px; font-size: 11px; font-weight: 900; }
.brise-case-visual-label strong { max-width: 60%; color: white; text-align: right; font-size: 21px; }
.brise-case-story { padding: 48px 42px; color: #f7f8f8; }
.brise-case-type { color: var(--brise-yellow, #ffc400); text-transform: uppercase; letter-spacing: 1.7px; font-size: 11px; font-weight: 900; }
.brise-case-story > h3 { margin: 8px 0 25px; font-size: 36px; letter-spacing: -1.5px; }
.brise-case-scopes { margin: -5px 0 28px; display: flex; flex-wrap: wrap; gap: 7px; }
.brise-case-scopes span { padding: 6px 9px; border: 1px solid rgba(255,196,0,.25); border-radius: 999px; background: rgba(255,196,0,.055); color: #d7dbdd; font-size: 11px; font-weight: 800; }
.brise-stage-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid rgba(255,255,255,.13); }
.brise-stage-tabs button { min-height: 64px; padding: 0 6px; border-bottom: 2px solid transparent; font-size: 11px; }
.brise-stage-tabs button span { display: block; margin-bottom: 5px; color: #929b9f; font-size: 11px; }
.brise-stage-tabs button[aria-selected=true] { border-color: var(--brise-yellow, #ffc400); color: white; }
.brise-stage-tabs button[aria-selected=true] span { color: var(--brise-yellow, #ffc400); }
.brise-stage-copy { min-height: 155px; padding: 27px 0 18px; }
.brise-stage-copy .brise-eyebrow { color: var(--brise-yellow, #ffc400); }
.brise-stage-copy p:last-child { color: #d4d7d9; line-height: 1.7; }
.brise-case-result { margin: 4px 0 0; padding: 18px 20px; border: 1px solid rgba(255,196,0,.26); border-radius: 8px; background: rgba(255,196,0,.045); }
.brise-case-result span { display: block; margin-bottom: 7px; color: var(--brise-yellow, #ffc400); text-transform: uppercase; letter-spacing: 1.4px; font-size: 11px; font-weight: 900; }
.brise-case-result p { margin: 0; color: #d9dcde; font-size: 12px; line-height: 1.6; }
.brise-case-result[hidden], .brise-back[hidden], .brise-case-link[hidden] { display: none; }
.brise-case-link { min-height: 44px; margin-top: 20px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--brise-yellow, #ffc400); color: #e7ebed; font-size: 12px; font-weight: 800; }
/* Website-SOS, project brief and contact forms. */
.brise-sos { min-height: calc(100vh - 82px); background: radial-gradient(circle at 12% 45%, rgba(255,196,0,.12), transparent 24%), #070c0f; }
.brise-sos-grid { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: 90px; align-items: center; }
.brise-sos-intro > p:not(.brise-eyebrow) { max-width: 480px; color: var(--brise-muted, #a9adb3); line-height: 1.75; }
.brise-sos-promise { margin-top: 30px; display: flex; align-items: center; gap: 18px; }
.brise-sos-promise > span { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: var(--brise-yellow, #ffc400); color: #101416; font-weight: 950; }
.brise-sos-promise p { margin: 0; color: var(--brise-muted); font-size: 13px; line-height: 1.55; }
.brise-sos-promise strong { color: white; }
.brise-sos-direct { margin-top: 26px; padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid rgba(255,196,0,.32); border-radius: 10px; background: rgba(255,196,0,.055); }
.brise-sos-direct > div { display: flex; flex-direction: column; gap: 4px; }
.brise-sos-direct strong { color: white; font-size: 13px; }
.brise-sos-direct span { color: var(--brise-muted); font-size: 12px; line-height: 1.5; }
.brise-sos-direct a { min-height: 46px; padding: 0 14px; display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; border-radius: 7px; background: var(--brise-yellow, #ffc400); color: #171b1d; font-size: 12px; font-weight: 900; }
.brise-sos-direct a span { color: inherit; }
.brise-sos-direct a:hover { background: #ffd335; color: #171b1d; }

.brise-form, .brise-brief-shell { padding: 36px; border: 1px solid var(--brise-form-border,rgba(255,255,255,.13)); border-radius: 16px; background: var(--brise-form-surface,linear-gradient(145deg,#12191e,#0d1317)); box-shadow: var(--brise-form-shadow,none); }
.brise-form fieldset, .brise-brief fieldset { padding: 0; margin: 0 0 22px; border: 0; }
.brise-form legend, .brise-form label:not(.brise-choice):not(.brise-consent), .brise-brief label:not(.brise-choice):not(.brise-consent) { display: block; color: var(--brise-form-ink,#e9eaea); font-size: 12px; font-weight: 800; }
.brise-field-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.brise-form input:not([type=radio]):not([type=checkbox]), .brise-form select, .brise-form textarea, .brise-brief input:not([type=radio]):not([type=checkbox]), .brise-brief textarea { width: 100%; margin-top: 8px; padding: 13px; border: 1px solid var(--brise-field-border,#394249); border-radius: 7px; background: var(--brise-field-bg,#090f13); color: var(--brise-field-ink,#fff); font-size: 13px; resize: vertical; }
.brise-optional { margin-left: 5px; color: var(--brise-muted); font-size: 11px; font-weight: 500; }
.brise-form textarea { margin-bottom: 19px; }
.brise-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.brise-choice-grid.compact { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 11px; }
.brise-choice { min-width: 0; min-height: 54px; padding: 10px 14px; display: flex; align-items: center; border: 1px solid var(--brise-field-border,#394249); border-radius: 7px; background: var(--brise-choice-bg,#0a1014); color: var(--brise-choice-ink,#d6d9db); cursor: pointer; }
.brise-choice span { min-width: 0; max-width: 100%; line-height: 1.35; overflow-wrap: anywhere; }
.brise-choice input { position: absolute; opacity: 0; }
.brise-choice:has(input:focus-visible) { outline: 3px solid var(--brise-focus, #ffc400); outline-offset: 4px; }
.brise-choice:has(input:checked) { border-color: var(--brise-yellow, #ffc400); background: rgba(255,196,0,.075); box-shadow: inset 3px 0 0 var(--brise-yellow, #ffc400); color: var(--brise-choice-active-ink,#fff); }
.brise-consent { min-height: 44px; margin: 8px 0 20px; display: flex; align-items: flex-start; gap: 9px; color: var(--brise-muted); font-weight: 400; line-height: 1.45; }
.brise-consent input { width: 22px; height: 22px; margin: 0; flex: 0 0 auto; accent-color: var(--brise-yellow, #ffc400); }
.brise-consent a { min-height: 24px; display: inline-flex; align-items: center; color: var(--brise-yellow, #ffc400); text-decoration: underline; text-underline-offset: 2px; }
.brise-honeypot[hidden] { display: none !important; }
.brise-form-success, .brise-form-warning, .brise-form-error { margin-bottom: 20px; padding: 15px; border: 1px solid var(--brise-yellow, #ffc400); border-radius: 8px; background: rgba(255,196,0,.06); color: var(--brise-status-ink,#e8e9ea); }
.brise-form-complete { min-height: 190px; display: flex; align-items: center; }
.brise-form-complete .brise-form-success, .brise-form-complete .brise-form-warning { width: 100%; margin-bottom: 0; }
.brise-form-warning { border-color: #e4b84f; background: rgba(228,184,79,.08); }
.brise-form-error { border-color: #e46d6d; background: rgba(228,109,109,.08); }
.brise-form-error a { color: white; text-decoration: underline; }

.brise-brief { min-height: calc(100vh - 82px); background: radial-gradient(circle at 85% 20%,rgba(255,196,0,.1),transparent 24%),#0a1014; }
.brise-brief-shell { padding: 54px; border-radius: 20px; }
.brise-brief-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brise-brief-assurance { max-width: 680px; margin: 18px 0 0; color: var(--brise-muted, #a9adb3); font-size: 13px; line-height: 1.65; }
.brise-timer { width: 82px; height: 82px; display: grid; place-content: center; flex: 0 0 auto; border: 1px solid rgba(255,196,0,.5); border-radius: 50%; text-align: center; }
.brise-timer strong { color: var(--brise-yellow, #ffc400); font-size: 28px; line-height: .9; }
.brise-timer span { color: var(--brise-muted); font-size: 11px; text-transform: uppercase; letter-spacing: 1.4px; }
.brise-progress { height: 3px; margin: 38px 0 44px; overflow: hidden; border-radius: 5px; background: #273037; }
.brise-progress span { width: 20%; height: 100%; display: block; background: var(--brise-yellow, #ffc400); transition: width .3s ease; }
.brise-brief .brise-brief-step { max-width: 880px; min-height: 300px; margin: 0 auto; scroll-margin-top: 140px; }
.brise-brief-step legend { margin-bottom: 28px; color: var(--brise-form-ink,#fff); font-size: clamp(26px,3vw,38px); font-weight: 800; letter-spacing: -1.2px; }
.brise-brief-step legend:focus { outline: none; }
.brise-brief-step legend:focus-visible { padding-left: 14px; border-left: 4px solid var(--brise-focus, #ffc400); }
.brise-brief-step legend span { display: block; margin-bottom: 10px; color: var(--brise-yellow, #ffc400); font-size: 11px; text-transform: uppercase; letter-spacing: 1.7px; }
.brise-brief-step[hidden] { display: none; }
.brise-brief-summary { margin: 0 0 26px; padding: 20px; border: 1px solid var(--brise-summary-border,rgba(255,255,255,.12)); border-radius: 10px; background: var(--brise-summary-bg,rgba(255,255,255,.025)); }
.brise-brief-summary h3 { margin: 0 0 16px; color: var(--brise-form-ink,#fff); font-size: 16px; }
.brise-brief-summary dl { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 24px; }
.brise-brief-summary dl div { min-width: 0; }
.brise-brief-summary dt { margin-bottom: 5px; color: var(--brise-yellow, #ffc400); text-transform: uppercase; letter-spacing: 1.3px; font-size: 11px; font-weight: 900; }
.brise-brief-summary dd { margin: 0; color: var(--brise-summary-ink,#dadddf); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.brise-brief-step > label:not(.brise-choice):not(.brise-consent) { margin-top: 16px; }
.brise-back { margin-top: 0; padding: 8px 0; border: 0; background: transparent; color: var(--brise-muted); cursor: pointer; }
.brise-result-actions { margin-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.brise-result-actions .brise-next:disabled { opacity: .45; box-shadow: none; cursor: not-allowed; transform: none; }

.brise-contact-form-section { padding-block: 90px; background: radial-gradient(circle at 20% 45%,rgba(255,196,0,.09),transparent 25%),#080d10; }
.brise-contact-form-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 90px; align-items: start; }
.brise-case-shell > *, .brise-sos-grid > *, .brise-field-row > *, .brise-choice-grid > *, .brise-contact-form-grid > * { min-width: 0; }
.brise-contact-form-intro { padding-top: 24px; }
.brise-contact-form-intro > p:not(.brise-eyebrow) { max-width: 480px; color: var(--brise-muted, #a9adb3); line-height: 1.75; }
.brise-contact-direct { margin-top: 32px; padding-top: 22px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; border-top: 1px solid rgba(255,255,255,.13); }
.brise-contact-direct span { margin-bottom: 3px; color: var(--brise-yellow, #ffc400); text-transform: uppercase; letter-spacing: 1.6px; font-size: 11px; font-weight: 900; }
.brise-contact-direct a { min-height: 44px; display: inline-flex; align-items: center; color: #e5e8e9; font-size: 13px; }
.brise-contact-direct a:hover { color: var(--brise-yellow, #ffc400); }
.brise-contact-status { margin-top: 24px; display: inline-flex; align-items: center; gap: 10px; color: #d8dcdd; font-size: 12px; font-weight: 800; }
.brise-contact-status i { width: 9px; height: 9px; display: block; border-radius: 50%; background: #33c879; box-shadow: 0 0 0 5px rgba(51,200,121,.1); }
.brise-contact-form > label:not(.brise-consent), .brise-contact-form .brise-field-row + label { display: block; margin-top: 16px; }
.brise-contact-form textarea { margin-bottom: 0; }
.brise-mobile-case-note { display: none; }

/* Responsive dynamic blocks. */
@media (max-width: 900px) {
	.brise-case-shell, .brise-sos-grid, .brise-contact-form-grid { grid-template-columns: minmax(0,1fr); }
	.brise-case-shell[data-image-mode="phone"] { grid-template-columns: minmax(0,1fr); }
	.brise-case-image { min-height: 0; aspect-ratio: 16/10; }
	.brise-case-image img { min-height: 0; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-visual { height: 560px; min-height: 560px; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-image { height: auto; min-height: 0; padding: 24px 28px; aspect-ratio: auto; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-story { min-height: 700px; border-top: 1px solid rgba(255,255,255,.12); border-left: 0; box-sizing: border-box; }
	.brise-sos-grid, .brise-contact-form-grid { gap: 46px; }
	.brise-contact-form-intro { padding-top: 0; }
}

@media (max-width: 600px) {
	.brise-section { padding: 52px 0 60px; }
	.brise-section-heading { margin-bottom: 38px; }
	.brise-section-heading h2, .brise-sos h2, .brise-brief h2, .brise-contact-form-intro h2 { font-size: 36px; line-height: 1.04; letter-spacing: -1.7px; }
	.brise-explorer-heading, .brise-brief-top { align-items: flex-start; flex-direction: column; }
	.brise-explorer-heading { gap: 28px; }
	.brise-case-switcher { width: 100%; flex: 0 0 auto; }
	.brise-case-switcher button { min-height: 48px; padding: 0 6px; font-size: 12px; }
	.brise-case-story { padding: 30px 20px; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-story { min-height: 0; }
	.brise-case-story > h3 { margin-bottom: 24px; font-size: 31px; }
	.brise-case-image { aspect-ratio: 16/10; }
	.brise-case-image img { object-fit: contain; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-visual { height: 390px; min-height: 390px; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-image { height: auto; min-height: 0; padding: 18px 20px; aspect-ratio: auto; }
	.brise-case-shell[data-image-mode="phone"] .brise-case-image img { height: 100%; max-width: 100%; border-width: 7px; border-radius: 24px; }
	.brise-case-visual-label { right: 22px; bottom: 20px; left: 22px; }
	.brise-case-visual-label strong { font-size: 16px; }
	.brise-stage-tabs { display: none; }
	.brise-stage-copy { min-height: 0; }
	.brise-mobile-case-note { margin: 18px 0 0; display: block; color: var(--brise-muted); font-size: 12px; line-height: 1.6; }
	.brise-form, .brise-brief-shell { padding: 26px 20px; }
	.brise-field-row, .brise-choice-grid, .brise-choice-grid.compact { grid-template-columns: minmax(0,1fr); }
	.brise-brief-step { min-height: 360px; }
	.brise-timer { width: auto; height: auto; padding: 7px 11px; display: inline-flex; align-items: baseline; gap: 5px; border-radius: 999px; }
	.brise-timer strong { font-size: 15px; line-height: 1; }
	.brise-timer span { font-size: 9px; }
	.brise-brief-summary dl { grid-template-columns: 1fr; }
	.brise-result-actions { align-items: stretch; flex-direction: column; }
	.brise-result-actions .brise-button { width: 100%; }
}

@media (max-width: 390px) {
	.brise-sos-direct { align-items: stretch; flex-direction: column; }
	.brise-sos-direct a { justify-content: space-between; }
}

/* Explicit light-theme adaptations for dynamic blocks. */
html[data-theme='light'] .brise-case-shell { background: #fffdf8; box-shadow: 0 26px 55px rgba(45,35,20,.12); }
html[data-theme='light'] .brise-cases { background: #f8f4ec; }
html[data-theme='light'] .brise-case-story { color: #171b1d; }
html[data-theme='light'] .brise-case-shell[data-image-mode="phone"] .brise-case-story { border-color: rgba(23,27,29,.12); }
html[data-theme='light'] .brise-case-scopes span { color: #4f575a; }
html[data-theme='light'] .brise-stage-tabs { border-color: rgba(23,27,29,.15); }
html[data-theme='light'] .brise-stage-tabs button { color: #4f575a; }
html[data-theme='light'] .brise-stage-tabs button span { color: #596164; }
html[data-theme='light'] .brise-stage-tabs button:hover { background: rgba(128,96,0,.06); }
html[data-theme='light'] .brise-stage-tabs button[aria-selected=true] { background: rgba(255,196,0,.11); color: #171b1d; }
html[data-theme='light'] .brise-case-type,
html[data-theme='light'] .brise-stage-copy .brise-eyebrow,
html[data-theme='light'] .brise-stage-tabs button[aria-selected=true] span,
html[data-theme='light'] .brise-case-result span,
html[data-theme='light'] .brise-consent a,
html[data-theme='light'] .brise-brief-step legend span,
html[data-theme='light'] .brise-brief-summary dt,
html[data-theme='light'] .brise-contact-direct span { color: var(--brise-accent-ink, #6f4f00); }
html[data-theme='light'] .brise-section-heading em,
html[data-theme='light'] .brise-sos em,
html[data-theme='light'] .brise-brief em,
html[data-theme='light'] .brise-sos .brise-eyebrow,
html[data-theme='light'] .brise-brief .brise-eyebrow,
html[data-theme='light'] .brise-contact-form-section .brise-eyebrow { color: var(--brise-accent-ink, #6f4f00); }
html[data-theme='light'] .brise-stage-copy p:last-child,
html[data-theme='light'] .brise-case-result p,
html[data-theme='light'] .brise-case-link { color: #4f575a; }
html[data-theme='light'] .brise-sos { background: radial-gradient(circle at 12% 45%,rgba(255,196,0,.18),transparent 24%),#f6f1e7; }
html[data-theme='light'] .brise-brief { background: radial-gradient(circle at 85% 20%,rgba(255,196,0,.16),transparent 24%),#f6f1e7; }
html[data-theme='light'] .brise-contact-form-section { background: radial-gradient(circle at 20% 45%,rgba(255,196,0,.14),transparent 25%),#eee7db; }
html[data-theme='light'] .brise-sos-intro > p:not(.brise-eyebrow),
html[data-theme='light'] .brise-sos-promise p,
html[data-theme='light'] .brise-brief-assurance { color: #596164; }
html[data-theme='light'] .brise-sos-promise strong,
html[data-theme='light'] .brise-sos-direct strong,
html[data-theme='light'] .brise-contact-direct a,
html[data-theme='light'] .brise-contact-status { color: #272d2f; }
html[data-theme='light'] .brise-sos-direct a { color: #171b1d; }
html[data-theme='light'] .brise-timer strong { color: var(--brise-accent-ink, #6f4f00); }
html[data-theme='light'] .brise-sos-direct a:hover { color: #171b1d; }

html[data-theme='light'] .brise-form-error a { color: #171b1d; }
html[data-theme='light'] .brise-progress { background: #cfc6b8; }
html[data-theme='light'] .brise-contact-direct { border-color: rgba(23,27,29,.15); }

html[data-theme='light'] .brise-sos,
html[data-theme='light'] .brise-brief { padding-block: clamp(40px,7vw,80px) clamp(64px,8vw,80px); }
