/* Liquid Glass: brand-coloured surfaces with a readable opaque fallback. */
.company-name { margin: 0 0 .75rem; }
.page-hero .company-name { margin-bottom: .15rem; color: var(--nd-muted); }
.company-description { margin-top: 0; }
.hero-subline .hero-company-name { margin: 0 0 .75rem; }
.hero-subline .hero-company-description { margin: 0; }
/* Filled architectural illustration, assembled from foundation to fit-out. */
.architecture-build svg { filter: none; }
.architecture-build__scene { stroke: #d3e0e4; stroke-width: 2; }
.architecture-build__guide { stroke: #78b5c7; stroke-width: 1; opacity: .16; }
.architecture-build__stage { animation-duration: 8s; animation-iteration-count: infinite; animation-timing-function: ease-in-out; }
.architecture-build__base { animation-name: nd-architecture-base; }
.architecture-build__walls { animation-name: nd-architecture-walls; }
.architecture-build__roofs { animation-name: nd-architecture-roofs; }
.architecture-build__details { animation-name: nd-architecture-details; }
.architecture-build__plinth { fill: #546f78; }
.architecture-build__wall { fill: #546f78; }
.architecture-build__annex { fill: #303638; }
.architecture-build__roof { fill: #52a0b7; }
.architecture-build__roof--annex { fill: #546f78; }
.architecture-build__chimney { fill: #546f78; }
.architecture-build__roof-shine { stroke: #ffffff80; stroke-width: 1; }
.architecture-build__window { fill: #c5e5ed; stroke: #1f2e33; }
.architecture-build__door { fill: #1f2e33; }
.architecture-build__frames { stroke: #1f2e33; stroke-width: 1.5; }
@keyframes nd-architecture-base {
  0% { opacity: 0; transform: translateY(10px); }
  12%,96% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(0); }
}
@keyframes nd-architecture-walls {
  0%,12% { opacity: 0; transform: translateY(18px); }
  38%,96% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(0); }
}
@keyframes nd-architecture-roofs {
  0%,36% { opacity: 0; transform: translateY(-18px); }
  58%,96% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(0); }
}
@keyframes nd-architecture-details {
  0%,56% { opacity: 0; }
  74%,96% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .architecture-build__stage { animation: none; opacity: 1; transform: none; }
}
/* Native SVG construction sequence; shares the site's pause/visibility controls. */
.hero-note.card { display: grid; grid-template-columns: minmax(0,1fr) 92px; gap: .85rem; }
.hero-note__top { grid-column: 1/-1; grid-row: 1; }
.hero-note h2 { grid-column: 1; grid-row: 2; align-self: center; max-width: none; }
.hero-note p { grid-column: 1/-1; grid-row: 3; }
.hero-note__links { grid-column: 1/-1; grid-row: 4; }
.house-build { grid-column: 2; grid-row: 2; align-self: center; width: 92px; height: 81px; color: #78b5c7; }
.house-build .house-stage { stroke-dasharray: 1; stroke-dashoffset: 0; animation-duration: 7s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; }
.house-foundation { animation-name: nd-house-foundation; }
.house-walls { animation-name: nd-house-walls; }
.house-roof { animation-name: nd-house-roof; }
.house-details { animation-name: nd-house-details; }
@keyframes nd-house-foundation {
  0% { stroke-dashoffset: 1; opacity: 0; }
  10%,96% { stroke-dashoffset: 0; opacity: 1; }
  100% { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes nd-house-walls {
  0%,10% { stroke-dashoffset: 1; opacity: 0; transform: translateY(8px); }
  32%,96% { stroke-dashoffset: 0; opacity: 1; transform: translateY(0); }
  100% { stroke-dashoffset: 0; opacity: 0; transform: translateY(0); }
}
@keyframes nd-house-roof {
  0%,32% { stroke-dashoffset: 1; opacity: 0; transform: translateY(-6px); }
  50%,96% { stroke-dashoffset: 0; opacity: 1; transform: translateY(0); }
  100% { stroke-dashoffset: 0; opacity: 0; transform: translateY(0); }
}
@keyframes nd-house-details {
  0%,50% { stroke-dashoffset: 1; opacity: 0; }
  68%,96% { stroke-dashoffset: 0; opacity: 1; }
  100% { stroke-dashoffset: 0; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .house-build .house-stage { animation: none; stroke-dasharray: none; stroke-dashoffset: 0; opacity: 1; transform: none; }
}
body.landing-page {
  background: radial-gradient(ellipse at 12% 18%, #52a0b728, transparent 32%),
    radial-gradient(ellipse at 92% 58%, #546f7826, transparent 30%), #f2eee6;
}

:is(body, .landing-page) :is(.site-header, .hero-note.card, .card.service-card,
  .statement-panel, .reference-preview, .contact-panel, .panel-soft,
  .split-layout > article.card, .explorer-wrap, .spatial-signal) {
  --nd-ink: #f4f4f4;
  --nd-muted: #d3e0e4;
  --foreground: #f4f4f4;
  --muted: #d3e0e4;
  color: #f4f4f4;
  position: relative;
  background: linear-gradient(135deg, #ffffff14, transparent 45%, #52a0b709),
    rgba(31, 46, 51, .94);
  border: 1px solid #ffffff59;
  box-shadow: inset 0 1px 0 #ffffff80, inset 1px 0 0 #ffffff1c,
    inset 0 -1px 0 #52a0b738, 0 12px 30px #1f2e3324;
}

:is(body, .landing-page) .site-header {
  position: sticky;
  background: linear-gradient(120deg, #ffffff17, transparent 55%), rgba(31, 46, 51, .94);
  border-color: #ffffff73;
  box-shadow: inset 0 1px 0 #ffffffa6, inset 0 -1px 0 #52a0b74d, 0 12px 32px #1f2e332e;
}

:is(body, .landing-page) :is(.services-section, .process-section, .contact-banner, .page-hero) {
  background: radial-gradient(ellipse at 90% 0%, #52a0b722, transparent 55%),
    linear-gradient(125deg, #ffffff0c, transparent 55%), rgba(31, 46, 51, .96);
  border: 1px solid #ffffff4d;
  box-shadow: inset 0 1px 0 #ffffff66, inset 0 -1px 0 #52a0b733, 0 18px 40px #1f2e3321;
}

/* Shine stays behind the content; it does not intercept links or selections. */
.card.service-card { isolation: isolate; overflow: hidden; }
.card.service-card::before,
.landing-page .card.service-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(115deg, #ffffff0d, transparent 28%, transparent 70%, #52a0b709);
}
.statement-panel::after { display: none; }
:is(body, .landing-page) .landing-statement { position: relative; }

:is(body, .landing-page) :is(.nd-button, .button.button--primary) {
  color: #1f2e33;
  background: linear-gradient(140deg, #ffffff24, transparent 58%), #52a0b7;
  border: 1px solid #ffffff80;
  box-shadow: inset 0 1px 0 #ffffffb3, inset 0 -1px 0 #1f2e3326, 0 6px 18px #52a0b72b;
}
:is(body, .landing-page) .nd-button--glass {
  color: #f4f4f4;
  background: linear-gradient(135deg, #ffffff17, #52a0b70c), rgba(31, 46, 51, .9);
  border-color: #ffffff66;
}
:is(body, .landing-page) :is(.hero-badge, .hero-note .chip, .language-nav) {
  background: linear-gradient(135deg, #ffffff12, #52a0b70d), rgba(31, 46, 51, .55);
  border: 1px solid #ffffff40;
  box-shadow: inset 0 1px 0 #ffffff38;
}
.service-card .text-link, .service-card li { color: #f4f4f4; }
.service-card li::marker { color: #78b5c7; }

/* Frosted hero actions: blue-tinted glass with light caught along the edges. */
:is(body, .landing-page) .hero-actions .nd-button {
  isolation: isolate;
  color: #ffffff;
  background: linear-gradient(155deg, #ffffff1a, transparent 48%, #52a0b70d), #24414b;
  border: 1px solid #b9e7f2a6;
  border-top-color: #ffffffd9;
  border-radius: 17px;
  box-shadow: inset 0 1px 0 #ffffff80, inset 1px 0 0 #ffffff26,
    inset 0 -1px 0 #52a0b780, 0 8px 24px #0c202b40;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
:is(body, .landing-page) .hero-actions .nd-button--glass {
  background: linear-gradient(155deg, #ffffff1a, transparent 48%, #52a0b708), #1f2e33;
  border-color: #ffffff80;
  border-top-color: #ffffffd9;
}
:is(body, .landing-page) .hero-actions .nd-button::before {
  z-index: -1;
  background: linear-gradient(110deg, transparent 30%, #ffffff0a 50%, transparent 70%);
}
:is(body, .landing-page) .hero-actions .nd-button::after {
  content: '';
  position: absolute;
  inset: 2px;
  z-index: -1;
  pointer-events: none;
  border-radius: 14px;
  border: 1px solid transparent;
  border-left-color: #ffffff26;
  border-right-color: #52a0b726;
}
:is(body, .landing-page) .hero-actions .nd-button:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 4px;
}

@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :is(body, .landing-page) .hero-actions .nd-button {
    background: linear-gradient(155deg, #ffffff1a, transparent 48%, #52a0b70d),
      linear-gradient(#52a0b724, #52a0b724), rgba(31, 46, 51, .8);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    backdrop-filter: blur(18px) saturate(150%);
  }
  :is(body, .landing-page) .hero-actions .nd-button--glass {
    background: linear-gradient(155deg, #ffffff1a, transparent 48%, #52a0b708),
      rgba(31, 46, 51, .8);
  }
  :is(body, .landing-page) :is(.hero-note.card, .card.service-card,
    .statement-panel, .reference-preview, .contact-panel, .panel-soft,
    .split-layout > article.card, .explorer-wrap, .spatial-signal) {
    background: linear-gradient(135deg, #ffffff14, transparent 45%, #52a0b709), rgba(31, 46, 51, .88);
    -webkit-backdrop-filter: blur(12px) saturate(125%);
    backdrop-filter: blur(12px) saturate(125%);
  }
  :is(body, .landing-page) .site-header {
    background: linear-gradient(120deg, #ffffff17, transparent 55%), rgba(31, 46, 51, .86);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
    backdrop-filter: blur(20px) saturate(135%);
  }
}

@media (hover: hover) and (pointer: fine) {
  :is(body, .landing-page) .hero-actions .nd-button:hover {
    color: #1f2e33;
    background: linear-gradient(155deg, #ffffff1a, transparent 48%), #52a0b7;
    transform: translateY(-2px);
    border-color: #d3f2f9;
    box-shadow: inset 0 1px 0 #ffffffa6, inset 1px 0 0 #ffffff33,
      inset 0 -1px 0 #52a0b780, 0 10px 28px #0c202b4d, 0 0 20px #52a0b724;
  }
  :is(body, .landing-page) .card.service-card:hover {
    transform: translateY(-3px);
    border-color: #ffffffa6;
    box-shadow: inset 0 1px 0 #ffffffb3, inset 0 -1px 0 #52a0b766, 0 16px 32px #1f2e332e;
  }
}
:is(body, .landing-page) .hero-actions .nd-button:active { transform: translateY(0); }
@media (max-width: 760px) {
  :is(body, .landing-page) .hero-actions .nd-button {
    -webkit-backdrop-filter: blur(12px) saturate(140%);
    backdrop-filter: blur(12px) saturate(140%);
  }
  :is(body, .landing-page) :is(.card.service-card, .hero-note.card) {
    -webkit-backdrop-filter: blur(8px) saturate(120%);
    backdrop-filter: blur(8px) saturate(120%);
  }
  .js .site-nav.is-open { background: #1f2e33f5; }
  :is(body, .landing-page) .landing-statement { position: relative; }
}
@media (prefers-reduced-motion: reduce) {
  :is(body, .landing-page) .hero-actions .nd-button:hover { transform: none; }
  :is(body, .landing-page) .hero-actions .nd-button::before { display: none; }
  :is(body, .landing-page) .card.service-card:hover { transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
  :is(body, .landing-page) .hero-actions .nd-button {
    background: #24414b;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  :is(body, .landing-page) :is(.site-header, .hero-note.card, .card.service-card,
    .statement-panel, .reference-preview, .contact-panel, .panel-soft,
    .split-layout > article.card, .explorer-wrap, .spatial-signal) {
    background: #1f2e33;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
@media (forced-colors: active) {
  .architecture-build svg { stroke: CanvasText; }
  .architecture-build__stage path { fill: Canvas; stroke: CanvasText; }
  .architecture-build__guide { stroke: CanvasText; }
  .house-build { color: CanvasText; }
  :is(body, .landing-page) .hero-actions .nd-button {
    background: ButtonFace;
    color: ButtonText;
    border-color: ButtonText;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  :is(body, .landing-page) .hero-actions .nd-button:focus-visible { outline-color: Highlight; }
  :is(body, .landing-page) .hero-actions .nd-button:is(:hover, :active) {
    background: ButtonFace;
    color: ButtonText;
    border-color: ButtonText;
    box-shadow: none;
  }
  :is(body, .landing-page) .hero-actions .nd-button::before,
  :is(body, .landing-page) .hero-actions .nd-button::after { display: none; }
  :is(body, .landing-page) :is(.site-header, .hero-note.card, .card.service-card,
    .statement-panel, .reference-preview, .contact-panel, .panel-soft,
    .split-layout > article.card, .explorer-wrap, .spatial-signal,
    .services-section, .process-section, .contact-banner, .page-hero) {
    background: Canvas;
    color: CanvasText;
    border-color: CanvasText;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .service-card::before { display: none; }
  .service-card li { color: CanvasText; }
  .service-card .text-link, .service-card li::marker { color: LinkText; }
}

/* Separate FAQ blocks with a light answer surface from the brand palette. */
.faq-section :is(.nd-faq.accordion,.faq-fallback){display:flex;flex-direction:column;gap:.75rem}
.faq-section :is(.nd-faq .accordion__item,.faq-fallback details){padding:0;overflow:hidden;border:1px solid #ffffff59;border-radius:20px;background:linear-gradient(135deg,#ffffff14,transparent 45%,#52a0b709),#1f2e33f0;box-shadow:inset 0 1px 0 #ffffff80,0 8px 24px #1f2e3324}
.faq-section :is(.nd-faq .accordion__trigger,.faq-fallback summary){padding:1.2rem 1.4rem;min-height:72px;color:#f4f4f4;font-size:1rem;line-height:1.5;cursor:pointer}
.faq-section .nd-faq .accordion__trigger{width:100%;gap:1rem;text-align:left}
.faq-section .nd-faq .accordion__indicator{color:#78b5c7;flex-shrink:0}
.faq-section :is(.nd-faq .accordion__trigger,.faq-fallback summary):focus-visible{outline:2px solid #52a0b7;outline-offset:-5px;border-radius:18px}
.faq-section :is(.nd-faq .accordion__body,.faq-fallback details>p){padding:1.25rem 1.4rem;margin:0;background:linear-gradient(135deg,#f4f4f4,#d5e5e8);color:#1f2e33;font-size:.95rem;line-height:1.75;border-top:1px solid #52a0b747}
.faq-section .nd-faq .accordion__body p{color:#1f2e33;margin:0}
@media(max-width:480px){.faq-section :is(.nd-faq .accordion__trigger,.faq-fallback summary){padding:1rem 1.1rem}.faq-section :is(.nd-faq .accordion__body,.faq-fallback details>p){padding:1.1rem}}
@media(forced-colors:active){.faq-section :is(.nd-faq .accordion__item,.faq-fallback details){background:Canvas;border-color:CanvasText;box-shadow:none}.faq-section :is(.nd-faq .accordion__trigger,.faq-fallback summary,.nd-faq .accordion__body,.nd-faq .accordion__body p,.faq-fallback details>p){background:Canvas;color:CanvasText}}

/* Shared action buttons: visible surface, generous target and local SVG arrow. */
body .nd-action.nd-action.nd-action {
  display: inline-flex; align-items: center; justify-content: flex-start;
  justify-self: start; align-self: flex-start; gap: .85rem;
  min-height: 48px; height: auto; max-width: 100%; white-space: normal;
  padding: .4rem .95rem .4rem .5rem; border: 1px solid #546f78;
  border-radius: 14px; background: #52a0b7; color: #1f2e33;
  font-size: .86rem; line-height: 1.4; text-decoration: none;
  box-shadow: inset 0 1px 0 #ffffff66, 0 5px 16px #1f2e332b;
  transition: background .2s, border-color .2s, box-shadow .2s;
}
.service-card .text-link.nd-action { margin-top: .55rem; }
body .nd-action.nd-action::before,body .nd-action.nd-action::after { content: none; }
.action-arrow {
  order: -1;
  display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px;
  border-radius: 50%; background: #1f2e33; color: #52a0b7;
}
body .nd-action .action-arrow svg { width: 24px; height: 24px; transition: transform .2s; }
body .nd-action.nd-action.nd-action:is(:hover,[data-hovered]):not(:disabled,[data-disabled]) {
  color: #1f2e33; background: #78b5c7; border-color: #d3e0e4;
  box-shadow: inset 0 1px 0 #ffffff80, 0 7px 18px #1f2e3338;
}
body .nd-action:is(:hover,[data-hovered]) .action-arrow--right svg { transform: translateX(2px); }
body .nd-action:is(:hover,[data-hovered]) .action-arrow--up svg { transform: translateY(-2px); }
body .nd-action.nd-action.nd-action:is(:focus-visible,[data-focus-visible]) { outline: 3px solid #1f2e33; outline-offset: 3px; box-shadow: 0 0 0 3px #f4f4f4; }
body .nd-action.nd-action.nd-action:is(:disabled,[data-disabled]) { opacity: .65; cursor: not-allowed; transform: none; }
@media(prefers-reduced-motion:reduce){body .nd-action .action-arrow svg{transition:none;transform:none!important}body .nd-action.nd-action.nd-action{transition:none;transform:none}}
@media(forced-colors:active){
 body .nd-action.nd-action.nd-action,body .nd-action.nd-action.nd-action:is(:hover,[data-hovered]){background:ButtonFace;color:ButtonText;border-color:ButtonText;box-shadow:none}
 .action-arrow{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}
 body .nd-action.nd-action.nd-action:is(:focus-visible,[data-focus-visible]){outline-color:Highlight}
}
