@layer reset,base,layout,components,responsive;
@layer reset {
  *,*::before,*::after {
    box-sizing:border-box
  }
  body,h1,h2,h3,p,figure,dl,dd {
    margin:0
  }
  button,input,select,textarea {
    font:inherit
  }
  img {
    display:block;
    max-width:100%
  }
  a {
    color:inherit
  }
  button {
    cursor:pointer
  }
  button,a,input,select,textarea,summary {
    -webkit-tap-highlight-color:transparent
  }
  [hidden] {
    display:none!important
  }
}
@layer base {
  :root {
    --navy:#123051;
    --blue:#176f9f;
    --sky:#90d2e6;
    --ink:#192f40;
    --muted:#546775;
    --pale:#f0f5f7;
    --line:#d9e3e8;
    --white:#fff;
    --font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif
  }
  html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
  }
  body {
    font-family:var(--font);
    color:var(--ink);
    background:#fff;
    font-size:16px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased
  }
  h1,h2,h3 {
    line-height:1.16;
    letter-spacing:-.035em;
    font-weight:730;
    text-wrap:balance
  }
  h1 {
    font-size:clamp(2.3rem,4.5vw,3.85rem)
  }
  h2 {
    font-size:clamp(1.85rem,3.1vw,2.65rem)
  }
  h3 {
    font-size:1.35rem;
    letter-spacing:-.02em
  }
  p {
    color:var(--muted)
  }
  a {
    text-decoration:none;
    text-underline-offset:5px
  }
  a:hover {
    text-decoration:underline
  }
  button:disabled {
    cursor:wait;
    opacity:.68
  }
  :focus-visible {
    outline:3px solid #2b91c4;
    outline-offset:5px
  }
  ::selection {
    background:#bde6f4
  }
  summary {
    cursor:pointer
  }
  button {
    border:0
  }
  input,textarea,select {
    border-radius:0
  }
  textarea {
    resize:vertical
  }
  body:has(.image-dialog[open]) {
    overflow:hidden
  }
}
@layer layout {
  .container {
    width:calc(100% - 112px);
    max-width:1248px;
    margin-inline:auto
  }
  .section {
    padding-block:100px
  }
  .site-header {
    background:#fff;
    position:sticky;
    top:0;
    z-index:30;
    border-bottom:1px solid #e7edf1
  }
  .header-inner {
    max-width:1360px;
    min-height:86px;
    padding:16px 56px;
    margin:auto;
    display:flex;
    align-items:center;
    gap:34px
  }
  .main-nav {
    display:flex;
    gap:32px;
    margin-left:auto;
    align-items:center
  }
  .header-actions {
    display:flex;
    gap:28px;
    align-items:center
  }
  .hero {
    display:grid;
    grid-template-columns:1fr 1.05fr;
    min-height:625px;
    max-width:1920px;
    margin:auto
  }
  .hero-copy {
    display:flex;
    align-items:center;
    background:var(--navy);
    color:#fff;
    padding:76px 60px
  }
  .hero-copy-inner {
    max-width:540px;
    margin-left:auto
  }
  .hero-image {
    position:relative;
    min-width:0;
    min-height:100%
  }
  .hero-image>img {
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0
  }
  .benefits {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    padding-block:40px;
    gap:36px;
    border-bottom:1px solid var(--line)
  }
  .three-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px
  }
  .split-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:center
  }
  .project-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px 36px
  }
  .inquiry-grid {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:88px;
    align-items:start
  }
  .footer-inner {
    display:flex;
    justify-content:space-between;
    gap:40px;
    padding-block:30px
  }
  .footer-inner nav {
    display:flex;
    gap:28px;
    flex-shrink:0
  }
}
@layer components {
  .skip {
    position:fixed;
    top:10px;
    left:10px;
    background:var(--navy);
    color:white;
    z-index:100;
    padding:12px 20px;
    transform:translateY(-160%)
  }
  .skip:focus {
    transform:none
  }
  .brand {
    font-size:27px;
    font-weight:900;
    letter-spacing:-1.1px;
    line-height:1;
    color:var(--blue);
    white-space:nowrap
  }
  .brand span {
    color:#174561
  }
  .brand:hover {
    text-decoration:none
  }
  .main-nav a {
    font-size:14px;
    font-weight:650;
    white-space:nowrap
  }
  .main-nav a[aria-current=page] {
    color:var(--blue)
  }
  .languages {
    display:flex;
    gap:14px;
    align-items:center
  }
  .languages a {
    font-size:12px;
    font-weight:750;
    line-height:2.2;
    border-bottom:2px solid transparent
  }
  .languages a[aria-current=true] {
    border-color:var(--blue);
    color:var(--blue)
  }
  .button {
    padding:15px 25px;
    min-height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    font-weight:750;
    font-size:14px;
    line-height:1.4;
    border:1px solid transparent;
    transition:background .18s,color .18s,box-shadow .18s
  }
  .button:hover {
    text-decoration:none
  }
  .button-blue {
    background:var(--blue);
    color:#fff
  }
  .button-blue:hover {
    background:#105b85
  }
  .button-white {
    color:var(--navy);
    background:#fff
  }
  .button-white:hover {
    background:#d9edf5
  }
  .button-outline {
    border-color:#aebfce;
    color:#fff;
    background:transparent
  }
  .button-outline:hover {
    background:#ffffff12
  }
  .hero h1 {
    max-width:550px;
    line-height:1.09;
    letter-spacing:-.045em;
    margin:24px 0
  }
  .hero .eyebrow {
    color:var(--sky)
  }
  .eyebrow {
    color:var(--blue);
    text-transform:uppercase;
    font-size:12px;
    letter-spacing:.14em;
    font-weight:800;
    margin-bottom:20px
  }
  .hero-description {
    color:#d6e4ef;
    font-size:17px;
    line-height:1.85;
    max-width:500px
  }
  .hero-buttons {
    margin-top:34px;
    display:flex;
    gap:12px;
    flex-wrap:wrap
  }
  .hero-image figcaption {
    position:absolute;
    bottom:20px;
    left:24px;
    background:#102a45d9;
    color:#fff;
    padding:8px 14px;
    font-size:12px
  }
  .benefits strong {
    font-size:16px;
    font-weight:750;
    display:block;
    margin-bottom:5px
  }
  .benefits p {
    font-size:14px;
    line-height:1.65;
    max-width:310px
  }
  .section-heading {
    max-width:790px;
    margin-bottom:46px
  }
  .section-heading h2 {
    margin-bottom:20px
  }
  .section-heading>p:last-child {
    max-width:730px;
    font-size:17px
  }
  .item-number {
    font-size:12px;
    color:var(--blue);
    font-weight:800;
    letter-spacing:.08em
  }
  .use-cases article {
    border-top:2px solid var(--line);
    padding-top:24px;
    display:flex;
    flex-direction:column;
    align-items:start
  }
  .use-cases h3 {
    margin:22px 0 16px;
    max-width:300px
  }
  .use-cases p {
    font-size:15px;
    line-height:1.85;
    margin-bottom:24px
  }
  .text-link {
    font-size:14px;
    font-weight:750;
    color:var(--blue);
    margin-top:auto;
    display:inline-flex;
    gap:14px;
    align-items:center
  }
  .construction {
    background:var(--pale)
  }
  .split-layout figure {
    height:100%;
    min-height:480px
  }
  .split-layout figure img {
    width:100%;
    height:100%;
    object-fit:cover
  }
  .split-layout h2 {
    margin-bottom:22px
  }
  .split-layout p {
    font-size:16px
  }
  .feature-list {
    list-style:none;
    padding:0;
    margin:30px 0 0
  }
  .feature-list li {
    padding:20px 0 18px 26px;
    border-top:1px solid var(--line);
    position:relative
  }
  .feature-list li::before {
    content:"";
    width:6px;
    height:6px;
    position:absolute;
    left:0;
    top:29px;
    background:var(--blue)
  }
  .feature-list strong {
    display:block;
    font-size:15px;
    margin-bottom:5px
  }
  .feature-list p {
    font-size:14px;
    line-height:1.8
  }
  .project-photo {
    display:block;
    overflow:hidden;
    background:var(--pale);
    aspect-ratio:1.55;
    position:relative
  }
  .project-photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .35s
  }
  .project-photo:hover img {
    transform:scale(1.025)
  }
  .project-photo::after {
    content:"↗";
    position:absolute;
    bottom:15px;
    right:15px;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    color:white;
    background:#123051c9
  }
  .project-caption {
    display:flex;
    gap:20px;
    padding-top:24px
  }
  .project-caption .item-number {
    padding-top:5px
  }
  .project-caption h3 {
    font-size:21px;
    margin-bottom:10px
  }
  .project-caption p {
    font-size:14px;
    line-height:1.8
  }
  .section-action {
    margin-top:42px
  }
  .process {
    background:var(--pale)
  }
  .step-number {
    font-size:13px;
    font-weight:800;
    display:grid;
    place-items:center;
    border:1px solid #b4cad7;
    color:var(--blue);
    height:42px;
    width:42px;
    margin-bottom:24px
  }
  .process h3 {
    font-size:20px;
    margin-bottom:16px
  }
  .process article p {
    font-size:15px;
    line-height:1.85
  }
  .faq {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:88px
  }
  .faq-items {
    border-top:1px solid var(--line)
  }
  .faq details {
    border-bottom:1px solid var(--line)
  }
  .faq summary {
    list-style:none;
    font-weight:700;
    padding:24px 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    line-height:1.55
  }
  .faq summary::-webkit-details-marker {
    display:none
  }
  .faq summary span {
    font-size:25px;
    color:var(--blue);
    font-weight:400;
    transition:transform .2s
  }
  .faq details[open] summary span {
    transform:rotate(45deg)
  }
  .faq details p {
    font-size:15px;
    line-height:1.85;
    padding:0 32px 26px 0
  }
  .inquiry {
    background:var(--navy);
    color:#fff
  }
  .inquiry-copy {
    position:sticky;
    top:130px
  }
  .inquiry .eyebrow {
    color:var(--sky)
  }
  .inquiry h2 {
    margin-bottom:26px
  }
  .inquiry-copy>p:last-of-type {
    color:#c6d9e7;
    font-size:17px;
    line-height:1.85
  }
  .contact-details {
    margin-top:42px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:26px
  }
  .contact-details>div:first-child {
    grid-column:1/-1
  }
  .contact-details dt {
    font-size:12px;
    color:#9bbad0;
    letter-spacing:.07em;
    text-transform:uppercase;
    margin-bottom:3px
  }
  .contact-details dd {
    font-size:17px
  }
  .contact-details a {
    font-size:23px;
    font-weight:650
  }
  .form-panel {
    background:#fff;
    color:var(--ink);
    padding:40px
  }
  .form-panel>h3 {
    font-size:25px;
    margin-bottom:14px
  }
  .form-hint {
    font-size:13px;
    line-height:1.75;
    margin-bottom:26px
  }
  .form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:20px;
    row-gap:13px
  }
  .field {
    min-width:0
  }
  .field.full {
    grid-column:1/-1
  }
  .field label {
    font-size:13px;
    font-weight:650;
    display:block;
    margin-bottom:7px
  }
  .field input,.field select,.field textarea {
    width:100%;
    border:1px solid #cad6de;
    background:#fff;
    color:var(--ink);
    padding:12px;
    line-height:1.4;
    min-height:46px;
    transition:border-color .15s
  }
  .field input:focus,.field select:focus,.field textarea:focus {
    outline:2px solid #85b9d3;
    outline-offset:1px
  }
  .field input[aria-invalid=true],.field textarea[aria-invalid=true] {
    border-color:#ad3535
  }
  .field textarea {
    font-size:14px;
    line-height:1.65
  }
  .field textarea::placeholder {
    color:#82919c
  }
  .field-error {
    color:#aa2424;
    font-size:12px;
    display:block;
    min-height:17px;
    margin-top:4px;
    line-height:1.4
  }
  .form-submit {
    width:100%;
    margin-top:14px;
    justify-content:space-between
  }
  .privacy-note {
    font-size:11px;
    line-height:1.7;
    margin-top:12px
  }
  .preview-notice {
    background:#eaf4fa;
    border-left:3px solid var(--blue);
    padding:12px 14px;
    font-size:12px;
    margin-bottom:22px;
    color:#295674
  }
  .form-result {
    font-size:14px;
    line-height:1.6;
    padding:14px;
    background:#fff0ed;
    border:1px solid #e7c4bc;
    margin:14px 0;
    color:#8d3023
  }
  .form-result.is-success {
    background:#eaf6ef;
    border-color:#b6d7c3;
    color:#225a3a
  }
  .honey {
    position:absolute;
    left:-10000px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden
  }
  .page-intro {
    padding:86px 0 80px;
    background:var(--pale)
  }
  .page-intro h1 {
    max-width:890px;
    font-size:clamp(2.25rem,4.3vw,3.5rem);
    margin-bottom:26px
  }
  .page-intro p:not(.eyebrow) {
    max-width:820px;
    font-size:18px;
    line-height:1.85
  }
  .about-story p+p {
    margin-top:20px
  }
  .not-found {
    min-height:65vh
  }
  .not-found .button {
    margin-top:26px
  }
  .site-footer {
    border-top:1px solid var(--line)
  }
  .footer-inner p,.footer-inner a {
    font-size:12px;
    color:var(--muted)
  }
  .menu-toggle {
    display:none
  }
  .image-dialog {
    border:0;
    padding:0;
    background:#0e2238;
    max-width:min(94vw,1400px);
    max-height:92vh;
    color:white;
    overflow:auto
  }
  .image-dialog::backdrop {
    background:#09192be8
  }
  .image-dialog>img {
    max-height:78vh;
    width:auto;
    max-width:100%;
    margin:auto;
    object-fit:contain
  }
  .image-dialog>p {
    text-align:center;
    padding:15px 50px;
    color:#fff
  }
  .dialog-close {
    position:sticky;
    top:12px;
    margin:12px 12px 12px auto;
    display:block;
    width:38px;
    height:38px;
    background:#fff;
    color:var(--navy);
    font-size:28px;
    line-height:1;
    z-index:1
  }
}
@layer responsive {
  @media(min-width:1600px) {
    .hero-copy {
      padding-left:max(60px,calc((100vw - 1248px)/2))
    }
  }
  @media(max-width:1100px) {
    .container {
      width:calc(100% - 64px)
    }
    .header-inner {
      padding-inline:32px;
      gap:24px
    }
    .main-nav {
      gap:23px
    }
    .header-actions {
      gap:20px
    }
    .header-cta {
      padding-inline:18px
    }
    .hero-copy {
      padding:60px 32px
    }
    .hero {
      min-height:600px
    }
    .split-layout {
      gap:42px
    }
    .inquiry-grid,.faq {
      gap:44px
    }
    .form-panel {
      padding:30px
    }
    .three-grid {
      gap:26px
    }
    .section {
      padding-block:80px
    }
  }
  @media(max-width:800px) {
    html {
      scroll-padding-top:96px
    }
    .container {
      width:calc(100% - 40px)
    }
    .header-inner {
      padding:18px 20px;
      min-height:76px;
      gap:20px;
      flex-wrap:wrap
    }
    .brand {
      font-size:25px
    }
    .menu-toggle {
      margin-left:auto;
      display:flex;
      align-items:center;
      gap:10px;
      background:transparent;
      padding:8px 0;
      color:var(--navy);
      font-weight:700;
      font-size:13px;
      min-height:36px
    }
    .hamburger,.hamburger::before,.hamburger::after {
      height:2px;
      width:21px;
      background:currentColor;
      display:block;
      position:relative
    }
    .hamburger::before,.hamburger::after {
      content:"";
      position:absolute;
      left:0
    }
    .hamburger::before {
      top:-6px
    }
    .hamburger::after {
      top:6px
    }
    .menu-toggle[aria-expanded=true] .hamburger {
      background:transparent
    }
    .menu-toggle[aria-expanded=true] .hamburger::before {
      top:0;
      transform:rotate(45deg)
    }
    .menu-toggle[aria-expanded=true] .hamburger::after {
      top:0;
      transform:rotate(-45deg)
    }
    .header-actions {
      order:2
    }
    .header-cta {
      display:none
    }
    .languages {
      gap:12px
    }
    .main-nav {
      order:4;
      width:100%;
      display:none;
      margin:0;
      padding:14px 0 5px;
      border-top:1px solid var(--line)
    }
    .main-nav.is-open {
      display:flex;
      flex-direction:column;
      align-items:stretch;
      gap:0
    }
    .main-nav a {
      padding:14px 2px;
      border-bottom:1px solid #e5edf0
    }
    .main-nav a:last-child {
      border:0
    }
    .no-js .main-nav {
      display:flex;
      flex-wrap:wrap;
      flex-direction:row;
      gap:20px
    }
    .hero {
      grid-template-columns:1fr;
      min-height:0
    }
    .hero-copy {
      padding:56px 24px 60px
    }
    .hero-copy-inner {
      max-width:none;
      width:100%;
      margin:0
    }
    .hero h1 {
      font-size:clamp(2.6rem,7.5vw,3.7rem);
      max-width:610px;
      margin-block:20px
    }
    .hero-description {
      font-size:16px;
      line-height:1.8;
      max-width:600px
    }
    .hero-image {
      width:100%;
      max-width:100%;
      min-height:0;
      aspect-ratio:1.45
    }
    .hero-image figcaption {
      font-size:11px;
      left:20px;
      bottom:16px
    }
    .benefits {
      gap:24px;
      padding-block:30px
    }
    .benefits strong {
      font-size:14px
    }
    .benefits p {
      font-size:12px
    }
    .section {
      padding-block:64px
    }
    .section-heading {
      margin-bottom:34px
    }
    .section-heading>p:last-child {
      font-size:16px
    }
    .three-grid {
      grid-template-columns:1fr;
      gap:34px
    }
    .use-cases article {
      display:grid;
      grid-template-columns:35px 1fr;
      column-gap:20px
    }
    .use-cases .item-number {
      padding-top:3px
    }
    .use-cases h3 {
      margin:0 0 14px;
      max-width:none;
      font-size:21px
    }
    .use-cases p,.use-cases .text-link {
      grid-column:2
    }
    .split-layout {
      grid-template-columns:1fr;
      gap:36px
    }
    .split-layout figure {
      min-height:0;
      aspect-ratio:1.5
    }
    .construction .split-layout>figure {
      order:2
    }
    .project-grid {
      gap:36px 24px
    }
    .project-caption {
      gap:14px;
      padding-top:18px
    }
    .project-caption h3 {
      font-size:19px
    }
    .project-caption p {
      font-size:13px
    }
    .process .three-grid {
      gap:32px
    }
    .step-number {
      margin-bottom:16px
    }
    .process article {
      max-width:650px
    }
    .process article h3 {
      margin-bottom:10px
    }
    .faq {
      grid-template-columns:1fr;
      gap:0
    }
    .faq .section-heading {
      margin-bottom:20px
    }
    .faq summary {
      padding-block:20px;
      font-size:15px
    }
    .inquiry-grid {
      grid-template-columns:1fr;
      gap:42px
    }
    .inquiry-copy {
      position:static
    }
    .inquiry-copy>p:last-of-type {
      font-size:16px
    }
    .contact-details {
      margin-top:26px;
      grid-template-columns:2fr 1fr 1fr;
      gap:20px
    }
    .contact-details>div:first-child {
      grid-column:auto
    }
    .contact-details a {
      font-size:19px
    }
    .contact-details dd {
      font-size:15px
    }
    .contact-details dt {
      font-size:10px
    }
    .form-panel {
      padding:32px
    }
    .page-intro {
      padding-block:55px
    }
    .page-intro p:not(.eyebrow) {
      font-size:16px
    }
    .footer-inner {
      flex-direction:column;
      gap:15px;
      padding-block:26px
    }
    .footer-inner nav {
      gap:25px
    }
    .about-story figure {
      max-height:480px
    }
  }
  @media(max-width:480px) {
    .header-inner {
      gap:16px
    }
    .hero-copy {
      padding:44px 20px 48px
    }
    .hero h1 {
      font-size:2.7rem;
      max-width:360px
    }
    .hero .eyebrow {
      font-size:10px
    }
    .hero-buttons {
      gap:10px;
      margin-top:28px
    }
    .hero-buttons .button {
      padding:15px 17px;
      font-size:12px;
      flex:1 1 auto
    }
    .hero-image {
      min-height:0;
      aspect-ratio:1.25
    }
    .benefits {
      grid-template-columns:1fr;
      gap:20px;
      padding-block:28px
    }
    .benefits>div {
      display:grid;
      grid-template-columns:1fr 1.2fr;
      gap:16px;
      align-items:start
    }
    .benefits strong {
      font-size:13px;
      margin:0
    }
    .benefits p {
      font-size:12px;
      line-height:1.65
    }
    .section {
      padding-block:52px
    }
    .eyebrow {
      font-size:10px;
      margin-bottom:15px
    }
    h2 {
      font-size:1.95rem
    }
    .section-heading>p:last-child {
      font-size:15px
    }
    .project-grid {
      grid-template-columns:1fr;
      gap:34px
    }
    .project-caption h3 {
      font-size:20px
    }
    .project-caption p {
      font-size:14px
    }
    .contact-details {
      grid-template-columns:1fr 1fr
    }
    .contact-details>div:first-child {
      grid-column:1/-1
    }
    .contact-details a {
      font-size:22px
    }
    .form-panel {
      padding:26px 20px
    }
    .form-grid {
      grid-template-columns:1fr;
      row-gap:10px
    }
    .field.full {
      grid-column:auto
    }
    .form-panel>h3 {
      font-size:24px
    }
    .form-hint {
      font-size:12px
    }
    .privacy-note {
      font-size:11px
    }
    .page-intro h1 {
      font-size:2.35rem
    }
    .page-intro {
      padding-block:44px
    }
    .use-cases article {
      grid-template-columns:25px 1fr;
      column-gap:16px
    }
    .image-dialog {
      max-width:96vw
    }
    .image-dialog>p {
      font-size:13px
    }
    .footer-inner nav {
      gap:20px;
      flex-wrap:wrap
    }
  }
  @media(prefers-reduced-motion:reduce) {
    html {
      scroll-behavior:auto
    }
    *,*::before,*::after {
      animation:none!important;
      transition:none!important
    }
  }
}

/* Optional analytics preferences; rendered only when tracking is configured. */
.cookie-settings{display:block;margin:0 auto 18px;padding:8px 12px;color:#55758d;text-decoration:underline;font-size:12px;background:transparent;border:0;cursor:pointer}
.cookie-banner{position:fixed;z-index:1000;bottom:20px;left:20px;right:20px;max-width:1100px;margin:auto;background:#fff;border:1px solid #c6d8e5;box-shadow:0 8px 45px #102d4930;padding:24px 28px;border-radius:10px;display:flex;align-items:center;gap:28px;color:#123051}
.cookie-banner[hidden]{display:none}.cookie-banner h2{font-size:19px;margin:0 0 8px}.cookie-banner p{font-size:14px;line-height:1.5;margin:0;max-width:620px}.cookie-actions{display:flex;gap:12px;flex-shrink:0;flex-wrap:wrap}.cookie-actions .button{font-size:13px;padding:12px 16px}.cookie-decline{border:1px solid #3a718e;background:#fff;color:#123051}.cookie-decline:hover{background:#edf5fa}
@media(max-width:760px){.cookie-banner{left:12px;right:12px;bottom:12px;padding:20px;display:block}.cookie-actions{margin-top:18px}.cookie-banner h2{font-size:18px}}

.footer-legal{display:flex;gap:20px;flex-wrap:wrap;padding-top:0;padding-bottom:20px;font-size:12px}.footer-legal a{color:inherit;text-decoration:underline}.legal-page{max-width:1000px}.legal-page h1{font-size:clamp(30px,4vw,48px);line-height:1.2;margin-bottom:20px}.legal-intro{font-size:18px;line-height:1.6;max-width:800px}.legal-updated{font-size:13px;color:#60768a}.legal-section{margin:34px 0}.legal-section h2{font-size:24px;margin-bottom:12px}.legal-section p{line-height:1.8}.legal-status{padding:16px;background:#edf5fa;border-left:3px solid #197394}.cookie-table-wrap{overflow-x:auto;margin:32px 0}.cookie-table{border-collapse:collapse;width:100%;font-size:14px}.cookie-table th,.cookie-table td{text-align:left;padding:15px;border:1px solid #d5e2ec;vertical-align:top;line-height:1.6;overflow-wrap:anywhere}.cookie-table th{background:#edf5fa}.cookie-table td:first-child{font-weight:700}.legal-links{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:30px;font-size:13px}.controller-details{display:grid;grid-template-columns:180px 1fr;gap:10px 20px;padding:24px;background:#edf5fa;margin:28px 0}.controller-details dt{font-weight:700}.controller-details dd{margin:0;overflow-wrap:anywhere}.cookie-categories{display:flex;gap:28px;flex-wrap:wrap;margin:14px 0;font-size:12px}.cookie-categories div{display:grid;gap:3px}.cookie-categories dt{font-weight:700}.cookie-categories dd{margin:0;color:#55758d}.cookie-policy-links{display:flex;gap:16px;font-size:12px}.cookie-actions .button{min-width:145px}.cookie-copy{flex:1}.cookie-banner{align-items:flex-start}
@media(max-width:760px){.controller-details{grid-template-columns:1fr;gap:5px;padding:18px}.controller-details dd{margin-bottom:10px}.cookie-table th,.cookie-table td{padding:10px;font-size:12px}.cookie-actions{width:100%}.cookie-actions .button{flex:1}.cookie-banner{max-height:calc(100dvh - 24px);overflow-y:auto}.legal-links{display:grid}}

/* Compact consent window with equally sized choices. */
.cookie-banner{max-width:860px;padding:16px 20px;gap:20px;bottom:16px;align-items:center}.cookie-banner h2{font-size:16px;margin:0 0 5px}.cookie-banner p{font-size:13px;line-height:1.45}.cookie-policy-links{margin-top:8px;font-size:11px;gap:14px}.cookie-actions{flex-direction:column;gap:8px;width:160px;min-width:160px}.cookie-actions .button{width:100%;min-width:0;padding:10px 12px;font-size:12px}
@media(max-width:600px){.cookie-banner{padding:16px;bottom:12px;gap:14px}.cookie-actions{flex-direction:row;width:100%;min-width:0;margin-top:14px}.cookie-actions .button{flex:1;padding:11px 8px}.cookie-banner h2{font-size:16px}}

/* Keep narrow legal headings within the page and prevent mobile input zoom. */
.legal-page{overflow-wrap:anywhere}
.draft-preview-bar{background:#fff3cb;color:#17334b;padding:12px 20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;border-bottom:1px solid #d9c58a}.draft-preview-bar a{color:inherit}.preview-fields{border:0;padding:0;margin:0;min-width:0}.preview-fields:disabled .form-submit{opacity:.55;cursor:not-allowed}
@media(max-width:900px){form input,form select,form textarea{font-size:16px}}

.project-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.project-gallery a{display:block;min-width:0}.project-gallery img{display:block;width:100%;height:80px;object-fit:cover}.project-caption p{white-space:pre-line}.project-photo-placeholder{height:240px;background:#eaf0f5}
@media(max-width:600px){.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.project-gallery img{height:70px}}

/* Cards without decorative numbering. */
.use-cases h3 { margin-top:0; }
@media (max-width:900px) {
  .use-cases article { display:flex; flex-direction:column; }
}
