:root{--color-primary:#2563EB;--color-secondary:#3B82F6;--color-accent:#F97316;--color-neutral-dark:#1E293B;--color-neutral-light:#F8FAFC;--font-heading:'Playfair Display',serif;--font-body:'Inter',sans-serif;--space-unit:8px;--section-padding:clamp(4.5rem,8vw,7rem);--section-padding-tight:clamp(3rem,5vw,4.5rem);--gap:2rem;--container:1080px;--measure:62ch;--step-display:clamp(2.75rem,6.5vw,5rem);--step-h2:clamp(2rem,4vw,3.1rem);--step-h3:clamp(1.35rem,2.4vw,1.75rem);--step-body:1.125rem;--step-small:.9375rem;--leading-display:1.15;--leading-body:1.6;--tracking-display:-.015em;--radius-card:10px;--radius-button:8px;--radius-image:10px;--shadow-rest:none;--shadow-hover:0 1px 0 color-mix(in srgb,var(--color-neutral-dark) 14%,transparent);--border-hairline:1px solid color-mix(in srgb,var(--color-neutral-dark) 12%,transparent);--sidebar-width:240px;--logo-mobile:72px;--logo-desktop:96px;--image-hero:4/3;--image-card:3/2;--image-portrait:4/5;--focus-width:2px;--motion:180ms}
/* === Foundations === */
*{box-sizing:border-box}body{margin:0;background:var(--color-neutral-light);color:var(--color-neutral-dark);font-family:var(--font-body);font-size:var(--step-body);line-height:var(--leading-body)}h1,h2,h3{font-family:var(--font-heading);font-weight:400;line-height:var(--leading-display);letter-spacing:var(--tracking-display);margin:0 0 var(--gap)}h1{font-size:var(--step-display);max-width:20ch}h2{font-size:var(--step-h2)}h3{font-size:var(--step-h3)}p{max-width:var(--measure);margin:0 0 var(--gap)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px;transition:color var(--motion),opacity var(--motion)}a:hover{color:var(--color-primary)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:var(--focus-width) solid var(--color-accent);outline-offset:var(--focus-width)}img{display:block;object-fit:cover;max-width:100%}button,input,textarea{font:inherit}button,a.button{cursor:pointer}button:hover,.button:hover{opacity:.85}button{transition:opacity var(--motion)}[hidden]{display:none!important}
/* === Sidebar === */
.site-header{padding:calc(var(--space-unit)*2);border-bottom:var(--border-hairline)}.logo{display:block}.logo img{height:var(--logo-mobile);width:auto;object-fit:contain;object-position:left center}.site-header nav{display:flex;flex-wrap:wrap;gap:var(--space-unit) calc(var(--space-unit)*2);padding-top:var(--space-unit)}.site-header nav a{text-decoration:none;font-size:var(--step-small)}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--color-accent)}.sidebar-note{display:none}.eyebrow{font-size:var(--step-small);color:var(--color-primary);border-top:var(--border-hairline);padding-top:calc(var(--space-unit)*2)}
/* === Composition === */
.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:calc(var(--space-unit)*3)}section{padding-block:var(--section-padding)}.hero{padding-block:var(--section-padding-tight)}.hero p{color:color-mix(in srgb,var(--color-neutral-dark) 80%,transparent)}.hero-image{width:100%;aspect-ratio:var(--image-hero);margin-top:var(--section-padding-tight)}.hero:has(.hero-image){padding-bottom:0}.button{display:inline-block;padding:calc(var(--space-unit)*2) calc(var(--space-unit)*3);border-radius:var(--radius-button);background:var(--color-primary);color:var(--color-neutral-light);text-decoration:none;border:var(--border-hairline);font-size:var(--step-small)}.hero .button{background:var(--color-accent);color:var(--color-neutral-dark)}.button:hover{color:var(--color-neutral-light)}.intro .wrap{max-width:calc(var(--measure) + var(--space-unit)*6)}.intro h2{max-width:24ch}.intro p{margin-bottom:0}.intro+.intro{background:color-mix(in srgb,var(--color-secondary) 8%,var(--color-neutral-light))}.quote-band{background:color-mix(in srgb,var(--color-secondary) 8%,var(--color-neutral-light));padding-block:var(--section-padding-tight)}blockquote{margin:0;border-block:var(--border-hairline);padding-block:var(--gap)}blockquote p{font-family:var(--font-heading);font-size:var(--step-h3);line-height:var(--leading-body)}cite{font-style:normal;font-size:var(--step-small)}.highlights{padding-block:var(--section-padding-tight)}.cards{display:grid;gap:var(--gap);counter-reset:card}.card{border-top:var(--border-hairline);padding-top:var(--gap);counter-increment:card}.card:before{content:counter(card,decimal-leading-zero);display:block;color:var(--color-primary);font-size:var(--step-small);font-variant-numeric:tabular-nums;margin-bottom:calc(var(--space-unit)*3)}.card p{margin:0}.card-link{display:block;text-decoration:none;border-radius:var(--radius-card);box-shadow:var(--shadow-rest)}.card-link:hover{box-shadow:var(--shadow-hover)}.closing{background:var(--color-neutral-dark);color:var(--color-neutral-light);padding-block:var(--section-padding-tight)}.closing h2{max-width:24ch}.closing p{max-width:var(--measure)}
/* === Contact === */
.contact-section{background:color-mix(in srgb,var(--color-secondary) 8%,var(--color-neutral-light))}.contact-layout{display:grid;gap:var(--gap)}form{max-width:var(--measure)}form>label{display:block;margin-bottom:calc(var(--space-unit)*3)}input:not([type=checkbox]),textarea{display:block;width:100%;margin-top:var(--space-unit);padding:calc(var(--space-unit)*2);border:var(--border-hairline);border-radius:var(--radius-button);background:var(--color-neutral-light);color:var(--color-neutral-dark)}textarea{min-height:calc(var(--space-unit)*20);resize:vertical}.form-consent{display:flex;gap:var(--space-unit);align-items:flex-start;font-size:var(--step-small)}.form-consent input{margin-top:var(--space-unit);flex-shrink:0}
/* === Footer === */
.site-footer{padding-block:var(--section-padding-tight)}.footer-grid{display:grid;gap:var(--gap);border-top:var(--border-hairline);padding-top:var(--gap);font-size:var(--step-small)}.footer-grid p{margin-bottom:calc(var(--space-unit)*2)}.footer-brand{font-family:var(--font-heading);font-size:var(--step-h3)}.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-unit)}address{font-style:normal;overflow-wrap:anywhere}.legal{display:flex;flex-wrap:wrap;gap:var(--space-unit) calc(var(--space-unit)*2);margin-top:calc(var(--space-unit)*2)}.copyright{font-size:var(--step-small);margin-top:var(--gap);margin-bottom:0}
/* === Consent === */
.cookie-banner{position:fixed;left:calc(var(--space-unit)*2);right:calc(var(--space-unit)*2);bottom:calc(var(--space-unit)*2);display:none;z-index:9999;background:var(--color-neutral-dark);color:var(--color-neutral-light);padding:calc(var(--space-unit)*3);border-radius:var(--radius-card);border:var(--border-hairline);max-width:var(--measure);margin-left:auto;max-height:calc(100vh - var(--space-unit)*4);overflow:auto}.cookie-banner.is-visible{display:block}.cookie-banner p{font-size:var(--step-small);margin-bottom:calc(var(--space-unit)*2)}.cookie-banner__actions{display:flex;flex-wrap:wrap;gap:var(--space-unit)}.cookie-banner button{font-size:var(--step-small);padding:var(--space-unit) calc(var(--space-unit)*2);border-radius:var(--radius-button);border:1px solid var(--color-neutral-light);background:transparent;color:var(--color-neutral-light)}.cookie-banner [data-cookie-accept],.cookie-banner [data-cookie-reject]{background:var(--color-accent);color:var(--color-neutral-dark);border-color:var(--color-accent)}.cookie-banner__prefs{padding-top:calc(var(--space-unit)*2)}.cookie-banner__prefs label{font-size:var(--step-small);margin-bottom:var(--space-unit)}
/* === Responsive === */
@media(min-width:768px){.logo img{height:var(--logo-desktop);width:auto}.wrap{padding-inline:calc(var(--space-unit)*6)}.cards{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1fr .7fr 1.3fr}.contact-layout{grid-template-columns:1fr 1.2fr}}
@media(min-width:900px){body{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.site-header{position:sticky;top:0;height:100vh;border-right:var(--border-hairline);border-bottom:0;display:flex;flex-direction:column;padding:calc(var(--space-unit)*3)}.site-header nav{flex-direction:column;gap:calc(var(--space-unit)*2);margin-top:var(--gap)}.sidebar-note{display:block;margin-top:auto;font-size:var(--step-small)}.sidebar-note p{margin-bottom:calc(var(--space-unit)*2)}.page{min-width:0}.highlights .wrap>h2{max-width:22ch}.hero .wrap{padding-top:calc(var(--space-unit)*2)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}