@charset "UTF-8";@layer components{.site-header--home{--header-text-color: var(--color-text-main);--header-active-color: var(--color-text-accent);position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem clamp(1rem,4vw,3rem);margin-bottom:2rem;display:flex;flex-direction:row;justify-content:space-between;align-items:center;background:var(--color-bg-page);border:0;border-bottom:1px solid oklch(from var(--color-black) l c h/.08);box-shadow:0 2px 10px oklch(from var(--color-black) l c h/.12);transition:all .15s ease-in-out;color:var(--header-text-color)}.site-header--home[data-scrolled=true]{--header-text-color: var(--color-text-main);--header-active-color: var(--color-text-accent);background:var(--color-bg-page);box-shadow:0 2px 10px oklch(from var(--color-black) l c h/.2);border-bottom:1px solid oklch(from var(--color-black) l c h/.08)}.site-header--home a{font-weight:600}.site-header--home a,.site-header--home button,.site-header--home span,.site-header--home svg{color:var(--header-text-color);fill:currentColor;stroke:currentColor}.site-header--home .site-header__brand{display:flex;align-items:center;justify-content:center}.site-header--home .site-header__brand span{margin:0;font-family:var(--font-fraunces),Arial,sans-serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:800}.site-header--home .site-header__brand:hover{text-decoration:none}.site-header--home .site-header__link:hover,.site-header--home .site-header__link:focus-visible{text-underline-offset:.5rem}.site-header--home .site-header__link--active,.site-header--home a[aria-current=page]{color:var(--header-active-color);font-weight:700}.site-header--home .site-header__nav{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.site-header--home .site-header__nav .site-header__links{display:flex;align-items:center}.site-header--home .site-header__nav .site-header__links ul{display:flex;flex-direction:row;gap:2em;align-items:center;margin:0;padding:0;list-style:none}.site-header--home .site-header__toggle-open,.site-header--home .site-header__toggle-close{display:none;padding:0;border:0;background:transparent;color:var(--header-text-color);font:inherit}.site-header--home .site-header__backdrop{position:fixed;inset:0;z-index:150;width:100dvw;height:100dvh;padding:0;border:0;background:oklch(from var(--color-black) l c h/.45);opacity:0;pointer-events:none;transition:opacity .2s ease}.site-header--home .site-header__nav[data-nav-open=true] .site-header__backdrop{opacity:1;pointer-events:auto}@media(max-width:780px){.site-header--home[data-hidden=true]{transform:translateY(calc(-100% - .5rem))}.site-header--home:focus-within{transform:translateY(0)}}@media(max-width:780px)and (prefers-reduced-motion:reduce){.site-header--home{transition:none}}@media(max-width:1200px){.site-header--home .site-header__toggle-open{display:inline-flex;align-items:center;justify-content:center;margin-bottom:0;cursor:pointer}.site-header--home .site-header__nav .site-header__links{--header-text-color: var(--color-text-main);--header-active-color: var(--color-text-accent);display:flex;position:fixed;top:0;right:0;z-index:200;flex-direction:column;align-items:flex-start;gap:1rem;width:min(360px,70vw);height:100dvh;padding:2rem;background:var(--color-bg-page);box-shadow:-12px 0 30px oklch(from var(--color-black) l c h/.35);transform:translate(110%);transition:transform .2s ease}.site-header--home .site-header__nav .site-header__links ul{flex-direction:column;align-items:flex-start;gap:1rem}.site-header--home .site-header__nav .site-header__toggle-close{display:inline-flex;align-items:center;justify-content:center;align-self:flex-end;cursor:pointer}.site-header--home .site-header__nav[data-nav-open=true] .site-header__links{transform:translate(0)}.site-header--home .site-header__nav[data-nav-open=true] .site-header__toggle-open{display:none}}}@layer components{.hero{--hero-accent: var(--color-text-accent);--hero-support: var(--color-text-support);--hero-support-bg: var(--color-bg-accent-subtle);--hero-text: var(--color-text-main);--hero-border: var(--color-border-subtle);position:relative;display:grid;place-items:center;container:hero/inline-size;min-height:100vh;min-height:100svh;padding:calc(var(--header-height) + var(--space-3xl)) var(--space-lg) var(--space-3xl);overflow:hidden;text-align:left;background:radial-gradient(circle at 14% 22%,oklch(from var(--hero-accent) l c h/.12) 0 10rem,transparent 20rem),linear-gradient(135deg,oklch(from var(--hero-support-bg) l c h/.42),transparent 42%),var(--color-bg-page)}.hero__decor{position:absolute;inset:0;z-index:0;pointer-events:none}.hero__decor:before,.hero__decor:after{content:"";position:absolute;border-radius:var(--radius-pill);background:oklch(from var(--hero-accent) l c h/.12)}.hero__decor:before{top:18%;right:max(-10rem,-8vw);width:min(34rem,48vw);height:.125rem;transform:rotate(-18deg)}.hero__decor:after{bottom:10%;left:max(-12rem,-10vw);width:min(42rem,62vw);height:.125rem;transform:rotate(-12deg)}.hero__line{position:absolute;display:block;height:.1875rem;border-radius:var(--radius-pill);background:currentColor;color:var(--hero-accent);opacity:.2;transform-origin:center}.hero__line--top{top:24%;left:clamp(1rem,7vw,7rem);width:clamp(6rem,16vw,16rem);transform:rotate(-16deg)}.hero__line--middle{top:47%;right:clamp(1rem,8vw,8rem);width:clamp(5rem,14vw,14rem);color:var(--hero-support);transform:rotate(14deg)}.hero__line--bottom{right:clamp(2rem,16vw,18rem);bottom:18%;width:clamp(4rem,11vw,11rem);transform:rotate(-8deg)}.hero__content{position:relative;z-index:1;display:grid;gap:var(--space-2xl);width:min(100%,82rem)}.hero__intro,.hero__details,.hero__copy{display:grid}.hero__intro{gap:var(--space-lg)}.hero__details{gap:var(--space-xl);align-content:center}.hero__copy{gap:var(--space-md)}.hero__title{max-width:12.5ch;margin:0;font-size:clamp(2.75rem,2.125rem + 3.4cqi,5rem);line-height:1.05;color:var(--hero-text)}.hero__title span{color:var(--hero-accent)}.hero__mark{display:block;width:clamp(2.75rem,5cqi,4.5rem);height:.25rem;background:var(--hero-accent)}.hero__lead,.hero__copy p,.hero__benefits li{margin:0;font-size:clamp(1rem,.9375rem + .35cqi,1.125rem);line-height:1.65;color:var(--hero-text)}.hero__lead{max-width:42ch;font-weight:700}.hero__copy{max-width:52ch;padding-bottom:var(--space-lg);border-bottom:1px solid var(--hero-border)}.hero__lead strong,.hero__copy strong{font:inherit;font-weight:800;color:var(--hero-accent)}.hero__benefits{display:grid;gap:var(--space-sm);margin:0;padding:0;list-style:none}.hero__benefits li{position:relative;padding-left:calc(var(--space-lg) + var(--space-xs));font-weight:700}.hero__benefits li:before{content:"✓";position:absolute;top:.18em;left:0;display:grid;place-items:center;width:1.125rem;aspect-ratio:1;border:2px solid var(--hero-accent);border-radius:var(--radius-pill);color:var(--hero-accent);font-size:.6875rem;font-weight:900;line-height:1}.hero__content .btn-hero{justify-self:start;margin-top:0;padding:var(--space-md) var(--space-xl);font-size:1.125rem;color:var(--color-white)}.btn-hero__arrow{inline-size:1.45em;block-size:1.45em;transition:transform .15s ease}.btn-hero:hover .btn-hero__arrow{transform:translate(.25rem)}@container hero (min-width: 58rem){.hero__content{grid-template-columns:minmax(0,1.05fr) minmax(24rem,.95fr);align-items:center;column-gap:clamp(var(--space-3xl),8cqi,8rem)}.hero__details{padding-top:var(--space-xl)}}@container hero (max-width: 57.999rem){.hero__title{max-width:14ch}.hero__decor{opacity:.7}}@media(prefers-reduced-motion:reduce){.btn-hero__arrow{transition:none}}}@layer components{.btn{--color-button: var(--color-action-bg);--color-button-contrast: var(--color-action-text);--button-shadow: 4px 4px 0 var(--color-button-contrast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-inline-size:fit-content;margin-top:var(--space-md);padding:var(--space-sm) calc(var(--space-md) + var(--space-2xs));border:2px solid transparent;border-radius:var(--radius-sm);box-shadow:none;cursor:pointer;font-weight:700;transition:box-shadow .15s ease,transform .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease,filter .15s ease}.btn:hover{text-decoration:none;box-shadow:var(--button-shadow);transform:translateY(-4px) translate(-4px);filter:brightness(1.1)}.btn:active{box-shadow:none;transform:translateY(0) translate(0);filter:brightness(1.1)}.btn--primary{--color-button: var(--color-action-bg);background-color:var(--color-button);color:var(--color-button-contrast);border-color:var(--color-button-contrast)}.btn--secondary{--color-button: var(--color-action-secondary-bg);--color-button-contrast: var(--color-action-secondary-text);background-color:var(--color-button);color:var(--color-button-contrast);border-color:var(--color-button-contrast)}.btn--accent{--color-button: var(--color-action-highlight-bg);background-color:var(--color-button);color:var(--color-action-highlight-text);border-color:var(--color-button)}.btn--outline{background:transparent;color:var(--color-text-accent);border-color:var(--color-border-accent)}.btn--outline:hover{box-shadow:4px 4px 0 var(--color-border-accent)}.btn--outline:active{box-shadow:none}.btn--ghost{background:transparent;color:var(--color-text-main);border-color:transparent;box-shadow:none}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}}@layer components{.approche-section{container:approche-section/inline-size}.approche-section__flow{display:grid;gap:var(--space-2xl);margin-top:var(--section-stack-gap)}.approche-section__item{display:grid;gap:var(--space-sm);width:100%}.approche-section__item h3{margin:var(--space-lg) 0;color:var(--color-text-accent)}.approche-section__item p,.approche-section__item ul,.approche-section__item li{margin:0}.approche-section__item p,.approche-section__item ul{max-inline-size:inherit}.approche-section__item strong{font-size:inherit;color:var(--color-text-accent)}.approche-section__item--method{gap:var(--space-xl);justify-self:center;max-inline-size:min(100%,56rem)}.approche-section__item--method h3{margin-block:var(--space-md) 0;font-size:2.125rem}.approche-section__item--method .approche-section__body{grid-template-columns:1fr}.approche-section__item--method .approche-section__text{grid-column:1}.approche-section__body,.approche-section__text{display:grid;gap:var(--space-sm)}.approche-section__text ul{display:grid;gap:var(--space-sm);margin-left:var(--space-md)}.approche-section__lead{font-size:1.625rem;line-height:1.45}.approche-section__steps{display:grid;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--color-bg-page) 0%,var(--color-bg-surface) 100%);box-shadow:var(--shadow-sm);list-style:none;counter-reset:approche-step}.approche-section__steps li{counter-increment:approche-step;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-xs) var(--space-sm);padding-block:var(--space-sm);border-block-start:1px solid var(--color-border-subtle)}.approche-section__steps li:first-child{border-block-start:0}.approche-section__steps li:before{content:counter(approche-step,decimal-leading-zero);grid-row:span 2;min-inline-size:2.4rem;font-family:var(--font-geist),system-ui,sans-serif;font-weight:800;line-height:1.6;color:var(--color-text-accent)}.approche-section__steps strong,.approche-section__steps p{grid-column:2}.approche-section__image{inline-size:100%;aspect-ratio:5/2;object-fit:cover;border-radius:var(--radius-sm)}@container approche-section (min-width: 56rem){.approche-section__flow{gap:var(--space-3xl)}.approche-section__item{justify-content:start}.approche-section__body{grid-template-columns:minmax(0,3fr) minmax(0,7fr);align-items:stretch;column-gap:var(--space-lg)}.approche-section__text{grid-column:2;gap:var(--space-md)}.approche-section__image{grid-column:1;grid-row:1;inline-size:100%;block-size:100%;max-block-size:100%;aspect-ratio:1}.approche-section__item--image-right .approche-section__body{grid-template-columns:minmax(0,7fr) minmax(0,3fr)}.approche-section__item--image-right .approche-section__body .approche-section__text{grid-column:1}.approche-section__item--image-right .approche-section__body .approche-section__image{grid-column:2}.approche-section__item--method .approche-section__body{grid-template-columns:1fr}.approche-section__item--method .approche-section__text{grid-column:1;gap:var(--space-2xl)}.approche-section__steps{padding:var(--space-xl)}}}@layer components{.ui-divider{inline-size:var(--divider-inline-size, 100%);margin-block:var(--divider-margin-block, 0);margin-inline:auto;border:0;border-block-start:var(--divider-thickness, 1px) solid var(--divider-color, var(--color-border-subtle))}}@layer layout{section{margin:0 auto;display:flex;flex-direction:column;justify-content:center;background-color:var(--color-bg-section)}section.section{margin-top:var(--space-4xl);padding:var(--space-xl)}section.section:last-of-type{margin-bottom:var(--space-2xl)}section.section--full{width:var(--section-width-full)}section.section--large{width:var(--section-width-large)}section.section--medium{width:var(--section-width-medium)}section.section--small{width:var(--section-width-small)}section h2{color:var(--color-text-accent)}}@layer components{.services-section{container:services-section/inline-size}.services-section__intro{max-inline-size:62ch;margin:0}.services-section__grid{display:grid;gap:var(--grid-gap-lg);grid-template-columns:1fr;margin-top:var(--space-fluid-xl)}.services-section__cta{display:grid;justify-items:center;gap:var(--space-md);margin-top:var(--space-2xl);text-align:center}.services-section__cta p{margin:0;font-size:1.25em;font-weight:700}.services-section__cta .btn,.services-section__cta a.btn{font-size:1.25em}.service-card{--card-content-gap: var(--space-md);grid-template-rows:auto minmax(0,1fr) auto;min-block-size:100%}.service-card h3,.service-card p,.service-card ul{margin:0}.service-card h3{color:var(--color-text-accent)}.service-card ul{display:grid;gap:var(--space-sm);padding-left:var(--space-lg)}.service-card .btn,.service-card a.btn{margin-top:auto;align-self:flex-start}.service-card .card__body{grid-template-rows:auto minmax(0,1fr);align-content:stretch}.service-card .card__body ul{align-content:start}.service-card .card__footer{place-items:center;padding-top:var(--space-sm);border-top:1px solid var(--color-border-subtle)}.service-card__price{display:grid;place-items:center;min-block-size:100%;inline-size:100%;margin:0;font-weight:700;text-align:center}@container services-section (min-width: 64rem){.services-section__grid{grid-template-columns:repeat(3,1fr);align-items:stretch}.service-card .card__header{min-block-size:4.25rem;align-content:start}}}@layer components{.realisations-section{container:realisations/inline-size}.realisations-project{display:grid;gap:var(--space-md);margin-top:var(--section-stack-gap)}.realisations-project h3,.realisations-project h4,.realisations-project p{margin:0}.realisations-project__layout{display:grid;gap:var(--space-fluid-md);align-items:start}.realisations-project__content{display:grid;gap:var(--space-md)}.realisations-project__item{display:grid;gap:var(--space-xs)}.realisations-project__media{display:grid;gap:var(--space-sm);justify-items:start;inline-size:100%}.realisations-project__capture{display:block;inline-size:100%;block-size:auto;border:2px solid var(--color-border-subtle);border-radius:var(--radius-sm);background-color:var(--color-bg-surface-raised)}@container realisations (min-width: 48rem){.realisations-project__layout{grid-template-columns:minmax(0,.92fr) minmax(20rem,1.08fr)}}}@layer components{.lightbox-image{inline-size:100%}.lightbox-image__trigger{display:block;inline-size:100%;padding:0;border:0;background:transparent;color:inherit;cursor:zoom-in}.lightbox-image__trigger:focus-visible{outline:3px solid var(--color-border-accent);outline-offset:var(--space-2xs)}.lightbox-image__media{display:block;inline-size:100%;block-size:auto}.lightbox-image__dialog{max-inline-size:min(96vw,90rem);max-block-size:92dvh;margin:auto;padding:var(--space-md);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-page);color:var(--color-text-main)}.lightbox-image__dialog::backdrop{background:oklch(from var(--color-black) l c h/.72)}.lightbox-image__close{position:absolute;inset-block-start:var(--space-sm);inset-inline-end:var(--space-sm);display:grid;place-items:center;inline-size:2.5rem;block-size:2.5rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-main);cursor:pointer;font-size:1.5rem;line-height:1;opacity:.3;transition:opacity .2s ease}.lightbox-image__close:hover,.lightbox-image__close:focus-visible{opacity:1}.lightbox-image__frame{overflow:auto;max-block-size:calc(92dvh - var(--space-md) * 2)}.lightbox-image__preview{display:block;inline-size:min(100%,90rem);block-size:auto}}@layer components{.about-section{container:about-section/inline-size}.about-section__layout{display:grid;gap:var(--space-lg);margin-top:var(--section-stack-gap)}.about-section__portrait{justify-self:center;inline-size:clamp(9rem,42cqi,14rem);aspect-ratio:1;overflow:hidden;border:2px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-bg-surface-raised)}.about-section__image{display:block;inline-size:100%;block-size:100%;object-fit:cover}.about-section__content{display:grid;gap:var(--space-md);padding:0 var(--space-md);border-right:2px solid var(--color-border-subtle)}.about-section__content p{margin:0}@container about-section (min-width: 42rem){.about-section__layout{grid-template-columns:auto minmax(0,1fr);align-items:start}.about-section__portrait{justify-self:start;inline-size:12rem}}}@layer components{.contact-section{--contact-panel-bg: var(--color-bg-section);--contact-panel-border: var(--color-border-accent);--contact-accent: var(--color-text-accent);--contact-accent-bg: var(--color-bg-surface);--contact-accent-border: var(--color-border-accent-subtle);--contact-callout-bg: var(--color-bg-surface-raised);--contact-callout-border: oklch( from var(--color-border-accent) l c h / .2 );--contact-muted-text: var(--color-text-muted);container:contact-section/inline-size;padding:var(--space-fluid-lg);border:2px solid var(--contact-panel-border);border-radius:var(--radius-md);background:var(--contact-accent-bg)}.contact-section__layout{display:grid;gap:var(--space-xl)}.contact-section__content{display:grid;gap:var(--space-md);margin-top:var(--section-stack-gap)}.contact-section__content p{margin:0}.contact-section__visual{display:grid;place-items:center;inline-size:clamp(7rem,30cqi,9.5rem);aspect-ratio:1;border:1px solid var(--contact-accent-border);border-radius:50%;color:var(--contact-accent)}.contact-section__visual svg{inline-size:clamp(3rem,10cqi,4rem);block-size:clamp(3rem,10cqi,4rem)}.contact-section__main{min-inline-size:0}.contact-section__email-icon{display:inline-grid;place-items:center;flex:0 0 auto;color:var(--contact-accent)}.contact-section__email-icon svg{inline-size:1.6rem;block-size:1.6rem}.contact-section__email{display:grid;gap:var(--space-sm);margin-block:var(--space-sm) var(--space-md)}.contact-section__email a{width:fit-content;overflow-wrap:anywhere;font-size:clamp(1.15rem,3cqi,1.5rem);font-weight:800;line-height:1.25}.contact-section__email-main,.contact-section__response-time{display:flex;align-items:center;gap:var(--space-sm)}.contact-section__response-time{width:min(100%,42rem);padding:var(--space-sm) var(--space-md);border:1px solid var(--contact-callout-border);border-radius:var(--radius-sm);background:var(--contact-callout-bg);color:var(--contact-muted-text);font-weight:700}.contact-section__response-time svg{flex:0 0 auto;inline-size:1.45rem;block-size:1.45rem;color:var(--contact-accent)}.contact-section__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.contact-section__actions .btn,.contact-section__actions a.btn{margin-top:0}.contact-section__btn-icon{inline-size:1.45em;block-size:1.45em}@container contact-section (min-width: 44rem){.contact-section__layout{grid-template-columns:minmax(0,1fr) max-content;align-items:start}.contact-section__visual{margin-block-start:var(--space-xs)}}@container contact-section (min-width: 64rem){.contact-section{padding:var(--space-xl) var(--space-2xl)}.contact-section__layout{align-items:center;gap:var(--space-2xl)}.contact-section__main{padding-inline:var(--space-xl)}.contact-section__actions{display:grid;align-content:center;justify-items:stretch}}}
