1ScssPhp\ScssPhp\Exception\CompilerException {#7941 #message: "Undefined mixin atelier-kicker: line: 229, column: 5" #code: 0 #file: "/app/vendor/scssphp/scssphp/src/Compiler.php" #line: 6179: { {ScssPhp\ScssPhp\Compiler->error($msg, ...$args) … › ›return new CompilerException($msg);›}} {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) … ›if (! $mixin) {›throw $this->error("Undefined mixin $name");›}} {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') … ›} else {›$ret = $this->compileChild($stm, $out);›}} {ScssPhp\ScssPhp\Compiler->compileBlock(Block $block) … › ›$this->compileChildrenNoReturn($block->children, $out, $block->selfParent);› } {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) … ›case Type::T_BLOCK:›$this->compileBlock($child[1]);›break;} {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') … ›} else {›$ret = $this->compileChild($stm, $out);›}} {ScssPhp\ScssPhp\Compiler->compileBlock(Block $block) … › ›$this->compileChildrenNoReturn($block->children, $out, $block->selfParent);› } {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) … ›case Type::T_BLOCK:›$this->compileBlock($child[1]);›break;} {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') … ›} else {›$ret = $this->compileChild($stm, $out);›}} {ScssPhp\ScssPhp\Compiler->compileBlock(Block $block) … › ›$this->compileChildrenNoReturn($block->children, $out, $block->selfParent);› } {ScssPhp\ScssPhp\Compiler->compileChild($child, OutputBlock $out) … ›case Type::T_BLOCK:›$this->compileBlock($child[1]);›break;} {ScssPhp\ScssPhp\Compiler->compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') … ›} else {›$ret = $this->compileChild($stm, $out);›}} {ScssPhp\ScssPhp\Compiler->compileRoot(Block $rootBlock) … › ›$this->compileChildrenNoReturn($rootBlock->children, $this->scope);›assert($this->scope !== null);} {ScssPhp\ScssPhp\Compiler->compileString($source, $path = null) … ›$this->injectVariables($this->registeredVars);›$this->compileRoot($tree);›$this->popEnv();} {App\Twig\TwigExtension->App\Twig\Traits\{closure} … › ›$css = $compiler->compileString($scss)->getCss();›$entityName = $entity?->__toString();} {App\Service\Cache\MemoryCacheService::App\Service\Cache\{closure} … ›$item->tag($tags);›return $function($item);›});} {Symfony\Component\Cache\LockRegistry::compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, ?Closure $setMetadata = null, ?LoggerInterface $logger = null): mixed … › ›$value = $callback($item, $save);› } {Symfony\Component\Cache\Adapter\TagAwareAdapter->Symfony\Component\Cache\Traits\{closure} … ›try {›$value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {›$setMetadata($item, $startTime, $metadata);} {Symfony\Component\Cache\Adapter\TagAwareAdapter->contractsGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null, ?LoggerInterface $logger = null): mixed … ›$save = true;›$item->set($callback($item, $save));›if ($save) {} {Symfony\Component\Cache\Adapter\TagAwareAdapter->doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null): mixed … › ›return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) {›// don't wrap nor save recursive calls} {Symfony\Component\Cache\Adapter\TagAwareAdapter->get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed … ›{›return $this->doGet($this, $key, $callback, $beta, $metadata);›}} {App\Service\Cache\MemoryCacheService::getValue(App\Service\Cache\CacheTagsEnum|string $name, callable $function, array $tags = [], bool $ignoreLanguage = false, bool $ignoreMediaType = false, bool $ignoreRole = false, array $suffixes = []): mixed … › ›return $cache->get($name, function (CacheItem $item) use ($function, $tags) {›$item->tag($tags);} {App\Service\Cache\Strategy\MemoryAndHttpCacheStrategy::getValue(App\Service\Cache\CacheTagsEnum|string $name, callable $function, array $tags = [], bool $ignoreLanguage = false, bool $ignoreMediaType = false, bool $ignoreRole = false, array $suffixes = []): mixed … ›{›return MemoryCacheService::getValue($name, $function, $tags, $ignoreLanguage, $ignoreMediaType, $ignoreRole, $suffixes);›}} {App\Service\Cache\CacheManager::getValue(App\Service\Cache\CacheTagsEnum|string $name, callable $function, array $tags = [], bool $ignoreLanguage = false, bool $ignoreMediaType = false, bool $ignoreRole = false, array $suffixes = []): mixed … ›{›return (self::getCacheStrategyClass())::getValue($name, $function, $tags, $ignoreLanguage, $ignoreMediaType, $ignoreRole, $suffixes);›}} {App\Twig\TwigExtension->filter_scss(?string $scss, ?string $randomBlockId = null, ?AbstractEvolutEntity $entity = null): ?string … ›$mediaType = SessionContextService::getContext(SessionContextEnum::MANUAL_MEDIA_TYPE) ?? SessionContextService::getContext(SessionContextEnum::ACTUAL_MEDIA_TYPE);›return CacheManager::getValue(sprintf('scss_rendering_for_%s_%s_%s_%s', $randomBlockId, md5($scss), $language, $mediaType),›function () use ($scss, $randomBlockId, $entity) {} {__TwigTemplate_de3f5a5383dba55f0089769a14095e32->block_bloc_styles(array $context, array $blocks = []): iterable … ›yield " ";›yield $this->extensions['App\Twig\TwigExtension']->filter_decode_html($this->extensions['App\Twig\TwigExtension']->filter_scss(CoreExtension::getAttribute($this->env, $this->source, ($context["bloc"] ?? null), "scss", [], "any", false, false, false, 17), CoreExtension::getAttribute($this->env, $this->source, ($context["bloc"] ?? null), "blocId", [], "any", false, false, false, 17), ($context["bloc"] ?? null)));›yield "} {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable … ›try {›yield from $template->$block($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_de3f5a5383dba55f0089769a14095e32->doDisplay(array $context, array $blocks = []): iterable … ›// line 13›yield from $this->unwrap()->yieldBlock('bloc_styles', $context, $blocks);›// line 44} {Twig\Template->yield(array $context, array $blocks = []): iterable … ›try {›yield from $this->doDisplay($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_3dac8488c739450518b10b9760b9254b->doDisplay(array $context, array $blocks = []): iterable … ›$this->parent = $this->loadTemplate("blocs/Bloc.html.twig", "blocs/global/bloc_with_header.html.twig", 3);›yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));›}} {Twig\Template->yield(array $context, array $blocks = []): iterable … ›try {›yield from $this->doDisplay($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_6b57b105b45e51a70cfc162472edc3fd->doDisplay(array $context, array $blocks = []): iterable … ›$this->parent = $this->loadTemplate("blocs/global/bloc_with_header.html.twig", "blocs/ContentBloc.html.twig", 2);›yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));›}} {Twig\Template->yield(array $context, array $blocks = []): iterable … ›try {›yield from $this->doDisplay($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_8e47dc406ec905e42279cfc058629785->block_include_bloc(array $context, array $blocks = []): iterable … ›yield " ";›yield from $this->loadTemplate((("blocs/" . $this->extensions['App\Twig\TwigExtension']->filter_class(CoreExtension::getAttribute($this->env, $this->source, ($context["blocPage"] ?? null), "bloc", [], "any", false, false, false, 57))) . ".html.twig"), "blocs/Page.html.twig", 57)->unwrap()->yield(CoreExtension::merge($context, ["bloc" => CoreExtension::getAttribute($this->env, $this->source, ($context["blocPage"] ?? null), "bloc", [], "any", false, false, false, 57), "nodump" => true, "form" => $this->extensions['App\Twig\TwigExtension']->function_accessor(($context["form"] ?? null), "[blocPages]", (("[" . CoreExtension::getAttribute($this->env, $this->source, ($context["loop"] ?? null), "index0", [], "any", false, false, false, 57)) . "]"))]));›// line 58} {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable … ›try {›yield from $template->$block($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_8e47dc406ec905e42279cfc058629785->block_blocPages(array $context, array $blocks = []): iterable … ›yield " ";›yield from $this->unwrap()->yieldBlock('include_bloc', $context, $blocks);›// line 59} {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable … ›try {›yield from $template->$block($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_8e47dc406ec905e42279cfc058629785->block_body(array $context, array $blocks = []): iterable … ›// line 54›yield from $this->unwrap()->yieldBlock('blocPages', $context, $blocks);›// line 61} {Twig\Template->yieldBlock($name, array $context, array $blocks = [], $useBlocks = true, ?self $templateContext = null): iterable … ›try {›yield from $template->$block($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_f7de9678832f434a6f354facfb4e9091->{closure} … ›yield " ";›yield from $this->unwrap()->yieldBlock('body', $context, $blocks);›// line 131} {Twig\Extension\CoreExtension::captureOutput(iterable $body): string … ›try {›foreach ($body as $data) {›echo $data;} {__TwigTemplate_f7de9678832f434a6f354facfb4e9091->doDisplay(array $context, array $blocks = []): iterable … ›// line 123›$___internal_parse_0_ = ('' === $tmp = \Twig\Extension\CoreExtension::captureOutput((function () use (&$context, $macros, $blocks) {›// line 124} {Twig\Template->yield(array $context, array $blocks = []): iterable … ›try {›yield from $this->doDisplay($context, $blocks);›} catch (Error $e) {} {__TwigTemplate_8e47dc406ec905e42279cfc058629785->doDisplay(array $context, array $blocks = []): iterable … ›$this->parent = $this->loadTemplate("base.html.twig", "blocs/Page.html.twig", 2);›yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));›}} {Twig\Template->yield(array $context, array $blocks = []): iterable … ›try {›yield from $this->doDisplay($context, $blocks);›} catch (Error $e) {} {Twig\Template->display(array $context, array $blocks = []): void … ›{›foreach ($this->yield($context, $blocks) as $data) {›echo $data;} {Twig\Template->render(array $context): string … ›try {›$this->display($context);›} catch (\Throwable $e) {} {Twig\TemplateWrapper->render(array $context = []): string … ›{›return $this->template->render($context);›}} {Twig\Environment->render($name, array $context = []): string … ›{›return $this->load($name)->render($context);›}} {Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView(string $view, ?string $block, array $parameters, string $method): string … › ›return $this->container->get('twig')->render($view, $parameters);›}} {Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response … ›{›$content = $this->doRenderView($view, $block, $parameters, $method);›$response ??= new Response();} {Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render(string $view, array $parameters = [], ?Response $response = null): Response … ›{›return $this->doRender($view, null, $parameters, $response, __FUNCTION__);›}} {App\Controller\Base\WebsiteController->renderPage(?string $slug = null): Response … › ›return $this->render('blocs/' . TwigExtension::filter_class($page) . '.html.twig', [›'bloc' => $page,} {Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response … ›// call controller›$response = $controller(...$arguments);› } {Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response … ›try {›return $response = $this->handleRaw($request, $type);›} catch (\Throwable $e) {} {Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response … ›try {›return $this->getHttpKernel()->handle($request, $type, $catch);›} finally {} {Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int … ›{›$response = $this->kernel->handle($this->request);› } {require_once … ›->getRunner($app)›->run()›);} { › ›require_once dirname(__DIR__).'/vendor/autoload_runtime.php';› : { "/app/vendor/autoload_runtime.php" } } } }
2 """ .efebat-hero-v1 {\n position: relative;\n height: 84vh;\n max-height: 820px;\n display: flex;\n align-items: center;\n overflow: hidden;\n padding-top: 96px;\n padding-bottom: 56px;\n background: var(--color1);\n\n .efebat-hero-v1__bg {\n position: absolute;\n inset: 0;\n background-position: center center;\n background-size: cover;\n background-repeat: no-repeat;\n transform: scale(1.01);\n filter: saturate(0.82) contrast(1.04);\n }\n\n .efebat-hero-v1__overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(90deg, rgba(34, 36, 38, 0.86) 0%, rgba(34, 36, 38, 0.68) 50%, rgba(34, 36, 38, 0.22) 100%);\n }\n\n .efebat-hero-v1__inner {\n position: relative;\n z-index: 2;\n width: 100%;\n }\n\n .efebat-hero-v1__content {\n max-width: 820px;\n text-align: left;\n }\n\n .efebat-hero-v1__label {\n margin-bottom: 22px;\n @include atelier-kicker(var(--color4));\n }\n\n .efebat-hero-v1__title {\n max-width: 780px;\n margin-bottom: 24px !important;\n @include atelier-page-hero-title;\n font-size: clamp(44px, 5.6vw, 72px) !important;\n }\n\n .efebat-hero-v1__description {\n max-width: 620px;\n margin-bottom: 34px;\n @include atelier-section-description(rgba(244, 241, 234, 0.9));\n }\n\n .efebat-hero-v1__actions .buttons {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n text-align: left !important;\n }\n\n .efebat-hero-v1__actions .evolut-btn-outline,\n .efebat-hero-v1__actions .btn-outline {\n color: var(--color4) !important;\n border-color: rgba(244, 241, 234, 0.78) !important;\n background: transparent !important;\n }\n}\n """bloc_60662221-5356-4a21-aed6-032782934a8e *{color: red !important} #bloc_60662221-5356-4a21-aed6-032782934a8e .shape-divider-top path { fill: #6174d1 !important; } #bloc_60662221-5356-4a21-aed6-032782934a8e .shape-divider-bottom path { fill: #6174d1 !important; }
Atelier d'architecture à Montpellier
Architecture précise pour lieux durables
Atelier Structure accompagne les particuliers et les professionnels dans la conception, la rénovation et le suivi de chantier, avec une méthode claire du premier croquis à la réception.
Expertises d'architecture
Des missions lisibles pour transformer une intention en projet construit : esquisse, autorisations, conception technique et coordination du chantier.
Une méthode claire pour décider sans flou
Partenaires de projet
Bureaux d'études, économistes, paysagistes et artisans spécialisés interviennent selon les besoins de chaque projet.
Repères de travail
Des engagements simples pour garder le projet compréhensible, maîtrisé et fidèle à son intention initiale.
Retours de clients
Des projets menés avec une exigence de clarté, de dialogue et de précision jusqu'à la réception.
Vous avez un lieu à transformer ?
Décrivez brièvement votre projet. L'agence vous recontacte pour qualifier les contraintes, les délais et la prochaine étape utile.
Réalisations sélectionnées
Maisons, rénovations et espaces professionnels : des projets choisis pour montrer la relation entre usages, lumière et matière.
Carnet d'agence
Notes courtes sur la conception, les démarches et les choix qui structurent un projet architectural.



