/* Shared FRAZ elements. Geometry exceptions belong to the page composition. */
*,::before,::after { box-sizing:border-box; }
:where(body.fraz-site) { margin:0; background:var(--fraz-color-bg); color:var(--fraz-color-text); font:400 var(--fraz-type-body-size)/var(--fraz-type-body-leading) var(--fraz-body-font); }
html { overflow-wrap:anywhere; scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; vertical-align:middle; }
[hidden] { display:none; }
html:not(.fraz-js) [data-cookie-settings], html:not(.fraz-js) .fraz-form [type="submit"] { display:none; }
em,.h2-accent { font-weight:var(--fraz-weight-regular); font-style:italic; }
:focus-visible { outline:var(--fraz-line-frame) solid var(--element-hover,var(--fraz-color-ice-hover)); outline-offset:var(--fraz-focus-offset); }
:is(a,button,input,textarea,summary) { transition:color var(--fraz-motion-feedback),background-color var(--fraz-motion-feedback),border-color var(--fraz-motion-feedback); }
.wrap { width:100%; max-width:var(--fraz-layout-container); margin-inline:auto; padding-inline:var(--fraz-layout-gutter); }
.container,.proof-wrap { width:calc(100% - 2 * var(--fraz-layout-gutter)); max-width:var(--fraz-layout-axis); margin-inline:auto; }
section { scroll-margin-top:var(--fraz-space-stack); }
.skip { position:absolute; left:var(--fraz-space-small); top:0; translate:0 -120%; z-index:2000; padding:var(--fraz-space-compact); background:var(--fraz-color-ice); color:var(--fraz-color-bg); }
.skip:focus { translate:0 var(--fraz-space-tight); }
:is([data-accent="ice"],[data-fraz-accent="ice"],[data-fraz-hover-accent="ice"],[data-fraz-link-accent="ice"]) { --element-accent:var(--fraz-color-ice); --element-hover:var(--fraz-color-ice-hover); }
:is([data-accent="steel"],[data-fraz-accent="steel"],[data-fraz-hover-accent="steel"],[data-fraz-link-accent="steel"]) { --element-accent:var(--fraz-color-steel); --element-hover:var(--fraz-color-steel-hover); }
:is([data-accent="light-blue"],[data-fraz-accent="light-blue"],[data-fraz-hover-accent="light-blue"],[data-fraz-link-accent="light-blue"]) { --element-accent:var(--fraz-color-light-blue); --element-hover:var(--fraz-color-light-blue-hover); }
:is([data-accent="lavender"],[data-fraz-accent="lavender"],[data-fraz-hover-accent="lavender"],[data-fraz-link-accent="lavender"]) { --element-accent:var(--fraz-color-lavender); --element-hover:var(--fraz-color-lavender-hover); }
:is([data-accent="gold"],[data-fraz-accent="gold"],[data-fraz-hover-accent="gold"],[data-fraz-link-accent="gold"]) { --element-accent:var(--fraz-color-gold); --element-hover:var(--fraz-color-gold-hover); }
:is([data-accent="coral"],[data-fraz-accent="coral"],[data-fraz-hover-accent="coral"],[data-fraz-link-accent="coral"]) { --element-accent:var(--fraz-color-coral); --element-hover:var(--fraz-color-coral-hover); }
[data-fraz-hover-accent]:is(:hover,:focus-visible) { color:var(--element-hover); }
.fraz-text-link { overflow-wrap:anywhere; --link-colour:var(--element-accent); color:var(--link-colour,inherit); text-decoration:underline; text-decoration-thickness:var(--fraz-line-hairline); text-underline-offset:.2em; text-decoration-skip-ink:auto; }
.fraz-text-link[data-fraz-link-role="standalone"] { text-decoration:none; }
.fraz-text-link>span:not([aria-hidden]),.fraz-link-label { min-width:0; text-decoration-line:inherit; text-decoration-thickness:inherit; text-underline-offset:inherit; }
.fraz-text-link:is(:hover,:focus-visible) { --link-colour:var(--element-hover); color:var(--link-colour); text-decoration-line:underline; text-decoration-thickness:var(--fraz-line-frame); }
.fraz-text-arrow { position:relative; display:inline-block; margin-left:.1em; font-family:var(--fraz-body-font); font-size:.8em; line-height:1; vertical-align:baseline; }
.fraz-inline-arrow { font-size:.9em; line-height:1.5; margin-left:.16em; }
.fraz-link-tail { white-space:nowrap; }
.fraz-link-word { display:inline-block; max-width:100%; vertical-align:baseline; }
.fraz-action { --action-inset:14px; display:inline-flex; align-items:center; justify-content:center; max-width:100%; min-height:var(--fraz-control-height); padding:var(--action-inset) var(--fraz-space-group); border:var(--fraz-line-hairline) solid var(--element-accent); border-radius:var(--fraz-radius); text-align:center; white-space:normal; text-decoration:none; cursor:pointer; }
.fraz-action-primary { background:var(--element-accent); color:var(--fraz-color-bg); }
.fraz-action-secondary { background:transparent; color:var(--element-accent); }
.fraz-action-primary:is(:hover,:focus-visible) { background:var(--element-hover); border-color:var(--element-hover); color:var(--fraz-color-bg); }
.fraz-action-secondary:is(:hover,:focus-visible) { color:var(--element-hover); border-color:var(--element-hover); }
.fraz-action:disabled { cursor:wait; }
.fraz-header { --page-hover:var(--element-hover); position:relative; z-index:1100; background:var(--fraz-color-bg); color:var(--fraz-color-ice); font-family:var(--fraz-mono-font); }
.fraz-header-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--fraz-space-tight) var(--fraz-space-stack); max-width:var(--fraz-layout-axis); margin-inline:auto; padding-block:var(--fraz-space-compact); width:calc(100% - 2 * var(--fraz-layout-gutter)); min-height:var(--fraz-layout-header-height); }
.fraz-header-logo,.brand-logo { display:inline-flex; align-items:center; flex:0 0 auto; padding:var(--fraz-space-tight); background:var(--element-accent); color:var(--fraz-color-bg); font:600 var(--fraz-type-brand-size)/1.2 var(--fraz-mono-font); letter-spacing:.12em; }
.fraz-header-logo:is(:hover,:focus-visible),.brand-footer:is(:hover,:focus-visible) .brand-logo { background:var(--element-hover); color:var(--fraz-color-bg); }
.fraz-header-menu { display:flex; align-items:center; flex-wrap:wrap; gap:var(--fraz-space-tight) var(--fraz-space-stack); min-width:0; }
.fraz-header-link { --element-hover:var(--fraz-color-ice-hover); display:inline-flex; align-items:center; min-height:var(--fraz-navigation-control-height); text-transform:uppercase; color:var(--fraz-color-ice); }
.fraz-header-link[aria-current="page"],.footer-link[aria-current="page"],.fraz-footer-legal-link[aria-current="page"] { --element-hover:var(--page-hover,var(--fraz-color-ice-hover)); color:var(--element-accent); text-decoration:underline; text-underline-offset:.2em; }
.fraz-header-link:is(:hover,:focus-visible),.footer-link:is(:hover,:focus-visible) { color:var(--element-hover); text-decoration:underline; text-underline-offset:.2em; }
.fraz-header-cta { --nav-cta-inset:14px; display:inline-flex; align-items:center; justify-content:center; min-height:var(--fraz-navigation-control-height); padding:var(--fraz-space-compact) var(--nav-cta-inset); border:var(--fraz-line-hairline) solid transparent; background:var(--element-accent); color:var(--fraz-color-bg); text-align:center; }
.fraz-header-cta:is(:hover,:focus-visible) { background:var(--element-hover); border-color:var(--element-hover); }
.fraz-header-toggle { font:inherit; --toggle-inset:9px; display:none; align-items:center; justify-content:center; flex:0 0 auto; width:var(--fraz-navigation-control-height); height:var(--fraz-navigation-control-height); margin:0; padding:var(--toggle-inset); border:var(--fraz-line-hairline) solid var(--fraz-color-line); border-radius:var(--fraz-radius); background:transparent; color:var(--element-accent); cursor:pointer; }
.fraz-header-toggle:is(:hover,:focus-visible) { color:var(--element-hover); }
.fraz-header-toggle svg { width:var(--fraz-space-group); height:var(--fraz-space-group); fill:none; stroke:currentColor; stroke-width:1.5; }
.fraz-header-toggle .fraz-header-cross,.fraz-header-toggle[aria-expanded="true"] .fraz-header-bars { display:none; }
.fraz-header-toggle[aria-expanded="true"] .fraz-header-cross { display:block; }
.service { --service-accent:var(--element-accent); position:relative; display:block; min-width:0; border-top:var(--fraz-line-frame) solid var(--service-accent); background:color-mix(in srgb,var(--service-accent) 7%,var(--fraz-color-bg)); }
.service h3 { color:var(--service-accent); margin-bottom:var(--fraz-space-small); }
.service ul { list-style:none; padding:0; }
.service li { --list-inset:5px; --list-indent:14px; position:relative; padding:var(--list-inset) 0 var(--list-inset) var(--list-indent); color:var(--fraz-color-muted); }
.service li::before { content:'–'; position:absolute; left:0; top:var(--list-inset); }
.service-wordgroup { white-space:nowrap; }
.faq-grid { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,6fr); gap:var(--fraz-space-block); align-items:start; }
.faq-details { border-bottom:var(--fraz-line-hairline) solid var(--fraz-color-line); }
.faq-summary { display:flex; align-items:center; gap:var(--fraz-space-small); min-height:var(--fraz-navigation-control-height); padding:var(--faq-space,var(--fraz-space-group)) 0; list-style:none; cursor:pointer; color:var(--fraz-color-text); }
.faq-summary::-webkit-details-marker { display:none; }
.faq-summary h3 { flex:1; min-width:0; color:inherit; }
.faq-icon { --symbol-gap:10px; margin-left:var(--symbol-gap); letter-spacing:-.04em; flex:0 0 auto; color:inherit; transition:transform var(--fraz-motion-feedback); }
.faq-summary:is(:hover,:focus-visible) { color:var(--element-hover,var(--fraz-color-ice-hover)); }
.faq-details[open] .faq-icon { transform:rotate(45deg); }
.faq-answer { margin-bottom:var(--faq-answer-space,var(--fraz-space-group)); padding-left:var(--fraz-space-small); color:var(--fraz-color-muted); }
.fraz-contact { --contact-copy-space:56px; --contact-form-space:40px; --contact-overlap:32px; --contact-line-height:32px; --contact-privacy-size:11.5px; --contact-avatar-size:40px; --contact-textarea-height:104px; padding:0; color:var(--fraz-color-text); font:400 var(--fraz-type-body-size)/1.5 var(--fraz-body-font); }
.fraz-contact-layout { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:var(--fraz-space-block); position:relative; isolation:isolate; padding-bottom:var(--fraz-layout-gutter); }
.fraz-contact-layout::before { content:''; position:absolute; z-index:-1; inset:var(--contact-overlap) 0 0; background:color-mix(in srgb,var(--element-accent,var(--fraz-color-ice)) var(--fraz-tint-strong-amount),transparent); pointer-events:none; }
.fraz-contact-copy { padding:calc(var(--contact-overlap) + var(--contact-copy-space)) var(--contact-copy-space) 0; min-width:0; }
.fraz-contact :is(.eyebrow,.h2-accent) { color:var(--element-accent,var(--fraz-color-ice)); }
.fraz-contact .subheading-small { color:var(--fraz-color-muted); }
.home-contact-duo { display:flex; align-items:center; gap:var(--fraz-space-tight); margin-top:var(--fraz-space-stack); }
.home-contact-duo img { display:block; width:var(--contact-avatar-size); height:var(--contact-avatar-size); object-fit:cover; }
.home-contact-duo p { color:var(--fraz-color-muted); margin-left:var(--fraz-space-tight); line-height:1.4; }
.fraz-contact-form { align-self:start; padding:var(--contact-form-space); background:var(--fraz-color-bg); position:relative; min-width:0; }
.fraz-contact-form::before { content:''; position:absolute; top:0; left:0; height:var(--contact-line-height); border-left:var(--fraz-line-hairline) solid var(--fraz-color-line-strong); pointer-events:none; }
.fraz-form-intro { margin-bottom:var(--fraz-space-group); }
.fraz-form-intro h3 { margin-bottom:var(--fraz-space-tight); }
[data-fraz-hover-accent]:is(:hover,:focus-visible) .fraz-link-label { color:inherit; }
.fraz-form { margin:0; }
.form-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--fraz-space-group); }
.form-wrap { min-width:0; margin-bottom:var(--fraz-space-group); }
.field-label { display:block; letter-spacing:.12em; text-transform:uppercase; color:var(--element-accent,var(--fraz-color-ice)); margin-bottom:var(--fraz-space-tight); }
.w-input { width:100%; border:0; border-bottom:var(--fraz-line-hairline) solid var(--fraz-color-line-strong); border-radius:var(--fraz-radius); background:transparent; color:var(--fraz-color-text); padding:0 0 var(--fraz-space-compact); }
.w-input::placeholder { color:var(--fraz-color-muted); }
textarea.w-input { height:var(--contact-textarea-height); resize:vertical; }
.button-form { width:100%; }
.fraz-form-privacy { font:400 var(--contact-privacy-size)/1.5 var(--fraz-body-font); color:var(--fraz-color-quiet); margin-top:var(--fraz-space-tight); }
.fraz-form-privacy a { color:inherit; }
.field-error { display:block; margin-top:var(--fraz-space-tight); color:var(--fraz-color-coral-hover); }
.field-error[hidden] { display:none; }
.fraz-footer { --page-hover:var(--element-hover); background:var(--fraz-color-bg); }
.fraz-footer-frame { padding-block:var(--fraz-space-block); width:calc(100% - 2 * var(--fraz-footer-gutter)); max-width:var(--fraz-footer-content-max); min-width:0; margin-inline:auto; }
.footer-flex-horizontal { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--fraz-space-small); }
.wrap-flex-footer-links { display:flex; align-items:flex-start; gap:var(--fraz-space-group); }
.footer-link { --element-hover:var(--fraz-color-ice-hover); letter-spacing:.1em; text-transform:uppercase; color:var(--fraz-color-ice); line-height:1.4; }
.footer-divider { height:var(--fraz-line-hairline); margin:0 -2px var(--fraz-space-tight) 0; border:0; border-top:.5px solid var(--fraz-color-line-strong); }
.footer-flex-legal { display:flex; align-items:center; justify-content:space-between; gap:var(--fraz-space-wide); }
.wrap-flex-legal-links { display:flex; align-items:flex-start; gap:var(--fraz-space-group); }
.fraz-footer-legal { color:var(--fraz-color-muted); font-family:var(--fraz-footer-legal-font); font-size:var(--fraz-footer-legal-size); font-weight:var(--fraz-footer-legal-weight); line-height:var(--fraz-footer-legal-leading); letter-spacing:var(--fraz-footer-legal-tracking); text-transform:none; }
.fraz-footer-legal-link { display:inline-flex; align-items:center; min-height:var(--fraz-footer-link-height); padding:var(--fraz-footer-link-padding) 0; border:0; background:transparent; cursor:pointer; }
.fraz-footer-legal-link:is(:hover,:focus-visible) { color:var(--fraz-color-ice-hover); text-decoration:underline; text-underline-offset:.2em; }
@media (max-width:991.98px) {
 html:not(.fraz-js) .fraz-header-toggle { display:none; }
 html:not(.fraz-js) .fraz-header-menu { display:flex; position:static; max-height:none; width:100%; }
 .faq-grid { grid-template-columns:minmax(0,1fr); row-gap:0; }
 .fraz-header-bar { gap:var(--fraz-space-group); }
 .fraz-header-toggle { display:inline-flex; }
 .fraz-header-menu { position:absolute; left:0; right:0; top:100%; display:none; flex-flow:column; align-items:stretch; gap:var(--fraz-space-micro); width:100%; max-height:calc(100dvh - var(--site-header-height,var(--fraz-layout-header-height))); overflow-y:auto; margin:0; padding:var(--fraz-space-small) var(--fraz-layout-gutter); background:var(--fraz-color-panel); border-block:var(--fraz-line-hairline) solid var(--fraz-color-line); }
 .fraz-header-menu[data-open="true"] { display:flex; }
 .fraz-header-link { min-height:var(--fraz-control-height); padding-block:var(--fraz-space-compact); }
 .fraz-header-menu .fraz-header-cta { min-height:var(--fraz-control-height); width:100%; margin-top:var(--fraz-space-compact); }
 .fraz-contact { --contact-copy-space:48px; --contact-form-space:32px; --contact-line-height:0px; }
 .fraz-contact-layout { grid-template-columns:1fr; gap:0; }
 .fraz-contact-copy { padding-bottom:var(--contact-copy-space); }
 .fraz-contact-form { margin-left:var(--contact-overlap); }
 .wrap-flex-footer-links { flex-wrap:wrap; }
}
@media (max-width:767.98px) {
 .faq-grid { row-gap:var(--fraz-space-small); }
 .fraz-contact { --contact-copy-space:32px; --contact-form-space:24px; --contact-overlap:24px; }
 .fraz-contact-form { margin-left:0; }
 .form-grid-2 { grid-template-columns:1fr; gap:0; }
 .home-contact-duo { flex-wrap:wrap; }
 .home-contact-duo p { flex-basis:100%; margin-left:0; }
 .footer-flex-horizontal { flex-direction:column; align-items:flex-start; gap:var(--fraz-space-stack); margin-bottom:var(--fraz-space-stack); }
 .wrap-flex-footer-links { flex-direction:column; gap:var(--fraz-space-group); }
 .footer-flex-legal { flex-direction:column; align-items:flex-start; gap:var(--fraz-space-compact); }
 .wrap-flex-legal-links { justify-content:space-between; width:100%; flex-direction:column; gap:var(--fraz-space-compact); margin-block:var(--fraz-space-small); }
 .fraz-footer-legal-link { width:100%; }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) { .person-portrait:hover img { translate:0 calc(-1 * var(--fraz-space-micro)); } }
:where(.person-portrait) img {
display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 35%;
 transition:translate var(--fraz-motion-feedback) var(--fraz-motion-ease); }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } :is(a,button,input,textarea,summary),.faq-icon,:where(.person-portrait) img { transition:none; } *,::before,::after { animation:none; } }

.h2-accent.ice { color:var(--fraz-color-ice); }

.eyebrow { color:var(--fraz-color-ice); }

.fraz-cookie-dialog { --dialog-measure:560px; background:var(--fraz-color-panel); color:var(--fraz-color-text); border:var(--fraz-line-hairline) solid var(--fraz-color-muted); padding:var(--fraz-space-group); max-width:min(90vw,var(--dialog-measure)); }
.fraz-cookie-dialog p { margin-block:var(--fraz-space-group); }
