/* Shared component styles for DAITA and DATECH. Keep this file identical in both repositories. */
:root {
  --brand-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --brand-ink: #0b1622;
  --brand-ink-soft: #2a3a4c;
  --brand-muted: #5d6b7a;
  --brand-primary: #006fa5;
  --brand-primary-dark: #014567;
  --brand-blue: #0089cc;
  --brand-orange: #f59c42;
  --brand-line: #d6e3ee;
  --brand-surface: #f5f8fb;
  --brand-surface-alt: #eaf2f9;
  --brand-radius-sm: 6px;
  --brand-radius-md: 12px;
  --brand-radius-lg: 18px;
  --brand-radius-feature: 24px;
  --brand-radius-pill: 999px;
  --brand-radius-input: 10px;
  --brand-shadow-sm: 0 1px 2px rgb(11 22 34 / 6%), 0 2px 6px rgb(11 22 34 / 5%);
  --brand-shadow: 0 8px 28px rgb(11 22 34 / 9%);
  --brand-motion: 220ms cubic-bezier(.2,.7,.2,1);
  /* Compatibility tokens for both existing page layouts. */
  --font: var(--brand-font); --font-sans: var(--brand-font);
  --ink: var(--brand-ink); --ink-dark: var(--brand-ink);
  --muted: var(--brand-muted); --line: var(--brand-line);
  --blue: var(--brand-primary); --blue-bright: var(--brand-blue);
  --surface: var(--brand-surface);
  --color-ink: var(--brand-ink); --color-ink-soft: var(--brand-ink-soft);
  --color-muted: var(--brand-muted); --color-line: var(--brand-line);
  --color-primary: var(--brand-blue); --color-primary-strong: var(--brand-primary);
  --color-primary-dark: var(--brand-primary-dark); --color-surface-alt: var(--brand-surface-alt);
  --radius-sm: var(--brand-radius-sm); --radius-md: var(--brand-radius-md);
  --radius: var(--brand-radius-md); --radius-lg: var(--brand-radius-lg);
  --shadow-sm: var(--brand-shadow-sm); --shadow: var(--brand-shadow); --t: var(--brand-motion);
}
body { font-family: var(--brand-font); font-size: 17px; line-height: 1.6; color: var(--brand-ink); }
h1,h2,h3,h4 { font-family: var(--brand-font); line-height: 1.15; letter-spacing: -.01em; }
h1,h2 { font-weight: 700; }
.hero h1,.home-hero h1 { line-height: 1.1; letter-spacing: -.025em; font-weight: 700; }
.hero h1 span { color: var(--brand-primary); }
.brand-card { border: 1px solid var(--brand-line); border-radius: var(--brand-radius-lg); background: #fff; box-shadow: var(--brand-shadow-sm); }
.home-services .brand-card { border-radius: var(--brand-radius-feature); box-shadow: 0 14px 44px rgb(11 22 34 / 7.5%); }
.home-services .brand-card:hover { border-color: rgb(0 111 165 / 32%); box-shadow: 0 24px 68px rgb(11 22 34 / 14%); transform: translateY(-5px); }
.brand-media { border-radius: var(--brand-radius-lg); overflow: hidden; }
.brand-button { border-radius: var(--brand-radius-pill); min-height: 52px; padding: .95rem 1.4rem; font-size: .98rem; font-weight: 600; line-height: 1.15; gap: .7rem; transition: transform var(--brand-motion), background var(--brand-motion), color var(--brand-motion), box-shadow var(--brand-motion); }
.btn.brand-button:not(.btn-plain):not(.btn-dark):not(.btn-outline):not(.btn-white):not(.btn-ghost):not(.btn-accent):not(.btn-outline-light) { background: var(--brand-primary); border-color: transparent; color: #fff; box-shadow: 0 4px 14px rgb(0 111 165 / 28%); }
.btn.brand-button:not(.btn-plain):not(.btn-dark):not(.btn-outline):not(.btn-white):not(.btn-ghost):not(.btn-accent):not(.btn-outline-light):hover { background: var(--brand-primary-dark); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 22px rgb(0 69 103 / 30%); }
.btn-plain.brand-button { padding-inline: 0; box-shadow: none; }
.brand-input,
.form-field :is(input:not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=radio]),select,textarea),
#application-form :is(input:not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=radio]),select,textarea),
.contact-form-wrap :is(input:not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=radio]),select,textarea) { border: 1px solid #6b7a80; border-radius: var(--brand-radius-input); background: #fff; color: var(--brand-ink); padding: .85rem 1rem; font: inherit; }
.brand-form { border-radius: var(--brand-radius-lg); }
.navigation .nav-cta,.site-nav .nav-primary-cta a { border: 1px solid var(--brand-line); border-radius: var(--brand-radius-md); background: #fff; color: var(--brand-ink); box-shadow: none; }
.navigation .nav-cta:hover,.navigation .nav-cta[aria-current],.site-nav .nav-primary-cta a:hover,.site-nav .nav-primary-cta a[aria-current] { background: var(--brand-surface-alt); color: var(--brand-primary-dark); }
.menu-toggle,.burger { border-radius: var(--brand-radius-md); }
.gallery-filters button,.gallery-card .media-link,.home-shortcuts a,.faq-list details { border-radius: var(--brand-radius-md); }
.project-video video,.social-video video { border-radius: var(--brand-radius-lg); }
.closing { background: var(--brand-ink); }
.brand-fab { position: fixed; right: 16px; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 55; display: inline-flex; align-items: center; gap: .55rem; padding: .65rem 1rem .65rem .55rem; min-height: 52px; background: var(--brand-primary); color: #fff; border: 0; border-radius: var(--brand-radius-pill); font: 600 .92rem/1.2 var(--brand-font); cursor: pointer; box-shadow: 0 10px 28px rgb(0 111 165 / 40%), 0 2px 6px rgb(11 22 34 / 18%); transition: transform var(--brand-motion),background var(--brand-motion),box-shadow var(--brand-motion); }
.brand-fab:hover { background: var(--brand-primary-dark); transform: translateY(-2px); }
.brand-fab img { width: 32px; height: 32px; object-fit: contain; background: #fff; border-radius: 50%; padding: 3px; }
.brand-fab::after,.brand-fab.is-pulse::after { content: none; animation: none; }
.brand-dialog-backdrop { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 1rem; background: rgb(6 19 32 / 55%); backdrop-filter: blur(4px); opacity: 0; transition: opacity var(--brand-motion); }
.brand-dialog-backdrop[hidden] { display: none; }
.brand-dialog-backdrop.is-open { opacity: 1; }
.brand-dialog { position: relative; width: min(520px,100%); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 2rem 1.6rem 1.6rem; border: 1px solid var(--brand-line); border-radius: var(--brand-radius-lg); background: #fff; color: var(--brand-ink); box-shadow: 0 30px 80px rgb(0 0 0 / 35%); text-align: left; transform: translateY(10px); transition: transform var(--brand-motion); }
.brand-dialog-backdrop.is-open .brand-dialog { transform: translateY(0); }
.brand-dialog h2 { margin: .3rem 0 .6rem; font-size: clamp(1.3rem,2vw + .6rem,1.6rem); }
.brand-dialog p { color: var(--brand-ink-soft); }
.brand-dialog .modal-logo { height: auto; width: min(230px,100%); margin: 0 0 1rem; padding: 0; background: #fff; border-radius: 0; }
.brand-dialog .cta-row,.brand-dialog .button-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.brand-dialog-close { position: absolute; top: .5rem; right: .6rem; width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--brand-ink-soft); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.brand-dialog-close:hover { background: var(--brand-surface-alt); color: var(--brand-ink); }
body.modal-open { overflow: hidden; }
.brand-fab:focus-visible,.brand-dialog :focus-visible,.brand-button:focus-visible { outline: 3px solid var(--brand-primary-dark); outline-offset: 4px; box-shadow: 0 0 0 4px #fff; }
/* Logo contains the qualification; do not repeat it underneath. */
.site-header .brand img[src*="daita-logo"] { width: 220px; height: auto; }
@media(max-width:1100px) { .brand-fab { bottom: calc(90px + env(safe-area-inset-bottom)); } }
@media(max-width:700px) {
  .home-services .brand-card { border-radius: var(--brand-radius-lg); }
  .brand-fab { right: 14px; padding: 8px; width: 56px; height: 56px; min-height: 56px; justify-content: center; border-radius: 50%; }
  .brand-fab span { display: none; }
  .brand-fab img { width: 38px; height: 38px; }
  .brand-dialog { padding: 1.4rem 1rem 1.1rem; }
  .brand-dialog h2 { font-size: 1.25rem; }
  .brand-dialog .brand-button { white-space: normal; width: 100%; }
  .site-header .brand img[src*="daita-logo"] { width: 190px; height: auto; }
}
@media(prefers-reduced-motion:reduce) { .brand-fab,.brand-dialog-backdrop,.brand-dialog,.brand-button { transition: none; animation: none; } }
@media print { .brand-fab,.brand-dialog-backdrop { display: none !important; } }

/* Shared media corners and local platform glyphs. */
:root { --brand-image-radius:12px; }
body img, body video { border-radius:var(--brand-image-radius) !important; }
.brand-media { border-radius:var(--brand-image-radius); }
:is(.footer-brand,.footer-logo) img { background:#fff; padding:8px; }
.social-links a.social-link {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:auto; height:auto; min-width:44px; min-height:44px; padding:10px 12px;
  border:1px solid var(--brand-line); border-radius:var(--brand-radius-md);
  background:#fff; color:var(--brand-ink); font-size:.82rem; font-weight:600;
  line-height:1.3; text-decoration:none;
}
.social-links a.social-link:hover { background:var(--brand-surface-alt); border-color:var(--brand-primary); color:var(--brand-primary-dark); text-decoration:none; }
.social-links .social-icon { display:block; width:24px; height:24px; flex:0 0 24px; }
.social-links a.social-link:focus-visible { outline:3px solid var(--brand-primary-dark); outline-offset:3px; box-shadow:0 0 0 3px #fff; }

/* Stacked phone footers: centered groups, readable links and room for the fixed contact bar. */
@media(max-width:760px) {
  .site-footer { --footer-mobile-line:rgba(255,255,255,.15); }
  .footer { --footer-mobile-line:var(--brand-line); }
  :is(.site-footer,.footer) { text-align:center; }
  :is(.site-footer,.footer) .container { width:calc(100% - 40px); padding-inline:0; margin-inline:auto; }
  :is(.site-footer,.footer) .footer-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  :is(.site-footer,.footer) .footer-grid > * { min-width:0; grid-column:auto; }
  :is(.site-footer,.footer) .footer-grid > :not(.footer-brand):not(.footer-intro) { padding-top:24px; border-top:1px solid var(--footer-mobile-line); }
  :is(.site-footer,.footer) :is(.footer-brand,.footer-intro) { display:flex; flex-direction:column; align-items:center; max-width:none; }
  :is(.site-footer,.footer) :is(.footer-brand,.footer-logo) img { margin:0 auto 18px; }
  :is(.site-footer,.footer) :is(.footer-brand-claim,.footer-intro p) { max-width:38ch; margin:0 auto 16px; font-size:15px; line-height:1.6; }
  .footer .footer-logo { width:220px; margin:0 auto 18px; }
  .footer .footer-logo img { margin:0; }
  .footer .footer-intro .small { font-size:14px; }
  :is(.site-footer,.footer) .social-links { justify-content:center; gap:8px; margin-top:12px; }
  :is(.site-footer,.footer) .social-links a.social-link { font-size:14px; }
  :is(.site-footer,.footer) :is(.footer-col h4,.footer-grid h3) { margin:0 0 12px; font-size:16px; line-height:1.4; }
  .site-footer .footer-links { gap:0; }
  .site-footer .footer-links a,
  .site-footer .footer-address a,
  .footer .footer-grid > div > a:not(.footer-logo) {
    display:flex; align-items:center; justify-content:center; gap:8px;
    min-height:44px; padding:8px 10px; margin:0; font-size:15px; line-height:1.5;
  }
  .site-footer .footer-links a::before { display:none; }
  .site-footer .footer-address { font-size:15px; line-height:1.6; }
  .site-footer .footer-address br:has(+ a), .site-footer .footer-address a + br { display:none; }
  .footer .footer-grid p { font-size:15px; line-height:1.6; }
  .footer .footer-grid .footer-contact { margin-top:8px; }
  .site-footer .footer-trust { margin-top:28px; padding-top:28px; }
  .site-footer .footer-tuev { justify-items:center; gap:16px; }
  .site-footer .footer-tuev img { width:min(300px,100%); margin-inline:auto; }
  .site-footer .footer-tuev h4 { font-size:15px; line-height:1.4; }
  .site-footer .footer-tuev p { font-size:14px; line-height:1.6; }
  .site-footer .footer-tuev p a { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:8px; }
  .site-footer .footer-datech { flex-direction:column; align-items:center; gap:12px; }
  .site-footer .footer-datech img { width:min(260px,100%); max-width:100%; }
  .site-footer .footer-datech-arrow { margin:0; }
  .footer .footer-qualification { flex-direction:column; align-items:center; gap:16px; }
  .footer .footer-qualification > img { margin-inline:auto; }
  .footer .footer-qualification strong { font-size:15px; line-height:1.4; }
  .footer .footer-qualification p { font-size:14px; line-height:1.6; }
  .footer .footer-qualification > .text-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; font-size:14px; }
  :is(.site-footer,.footer) .footer-bottom { display:flex; flex-direction:column; align-items:center; gap:12px; padding-block:24px calc(180px + env(safe-area-inset-bottom,0px)); font-size:14px; line-height:1.5; }
  :is(.site-footer,.footer) .footer-bottom :is(.footer-copy,span) { font-size:14px; }
  :is(.site-footer,.footer) .footer-bottom > div { display:flex; justify-content:center; flex-wrap:wrap; gap:8px 16px; margin:0; }
  :is(.site-footer,.footer) .footer-bottom a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 4px; font-size:14px; }
  .site-footer .footer-cta-project-copy { justify-items:center; }
  .site-footer .footer-cta h2 { margin-inline:auto; }
  .site-footer .footer-cta-trust { justify-content:center; align-items:center; }
  .site-footer .footer-cta-person { margin-inline:auto; text-align:left; }
}

/* Closing fades must not block a new click on the cross-reference button. */
.brand-dialog-backdrop:not(.is-open),.modal-backdrop:not(.is-open) { pointer-events:none; }

/* Use the DAITA menu button geometry in both headers. */
.site-header :is(.burger,.menu-toggle) { width:48px; height:48px; min-width:48px; flex-shrink:0; padding:0; border:1px solid var(--brand-line); border-radius:var(--brand-radius-md); background:transparent; cursor:pointer; }
.site-header :is(.burger,.menu-toggle):hover { background:var(--brand-surface); }
.site-header :is(.burger,.menu-toggle) span { display:block; width:24px; height:2px; margin:6px auto; border-radius:2px; background:var(--brand-ink); opacity:1; transform:none; transition:transform var(--brand-motion),opacity var(--brand-motion); }
.site-header :is(.burger,.menu-toggle)[aria-expanded="true"] span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
.site-header :is(.burger,.menu-toggle)[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.site-header :is(.burger,.menu-toggle)[aria-expanded="true"] span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
.site-header :is(.burger,.menu-toggle):focus-visible { outline:3px solid var(--brand-primary-dark); outline-offset:3px; }
html:not(.js) .site-header :is(.burger,.menu-toggle) { display:none; }

/* Shared light footer layout, matching DATECH's order and typography. */
.brand-footer { background:#fbfcfc; color:var(--brand-ink); --footer-mobile-line:var(--brand-line); }
.brand-footer.site-footer { padding-top:0; }
.brand-footer .footer-main { padding-top:60px; padding-bottom:0; }
.brand-footer .footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.05fr; gap:44px; padding-bottom:45px; }
.brand-footer .footer-grid > * { min-width:0; }
.brand-footer .footer-logo { display:block; width:220px; margin:0 0 22px; padding:8px; background:#fff; border-radius:var(--brand-image-radius); overflow:hidden; }
.brand-footer .footer-logo img { display:block; width:100%; height:auto; margin:0; padding:0; }
/* Round the actual image and its white frame separately. */
.brand-footer .footer-image-frame { display:block; max-width:100%; flex-shrink:0; padding:12px; background:#fff; border-radius:var(--brand-image-radius); overflow:hidden; }
.brand-footer .footer-image-frame > img { display:block; width:100%; max-width:100%; height:auto; margin:0; padding:0; object-fit:contain; }
.brand-footer .footer-grid h3 { color:var(--brand-ink); font-size:.78rem; font-weight:700; letter-spacing:.02em; text-transform:none; margin:9px 0 24px; }
.brand-footer .footer-grid :is(p,.footer-brand-claim) { font-size:.8rem; color:var(--brand-muted); line-height:1.9; margin:0 0 16px; max-width:38ch; }
.brand-footer .footer-links { display:grid; gap:0; }
.brand-footer .footer-grid :is(.footer-links a,.footer-address a) { display:block; font-size:.76rem; color:var(--brand-muted); line-height:1.6; margin:0 0 9px; padding:0; }
.brand-footer .footer-grid .footer-links a::before { display:none; }
.brand-footer .footer-grid a:hover { color:var(--brand-primary); }
.brand-footer .footer-address { font-style:normal; }
.brand-footer .footer-grid .footer-contact { display:flex; align-items:center; gap:15px; margin-top:18px; color:var(--brand-primary); }
.brand-footer .social-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.brand-footer .social-links a.social-link { color:var(--brand-ink); }
.brand-footer .social-links a.social-link:hover { color:var(--brand-primary-dark); }
.brand-footer .footer-trust { display:block; margin:0; padding:0; border:0; }
.brand-footer .footer-qualification { display:flex; align-items:center; gap:32px; background:transparent; border:0; border-top:1px solid var(--brand-line); border-radius:0; padding:30px 0; margin:0; color:var(--brand-ink); }
.brand-footer .footer-qualification > .footer-image-frame { width:min(300px,100%); margin:0; }
.brand-footer .footer-qualification > div { min-width:0; }
.brand-footer .footer-qualification strong { font-size:.95rem; line-height:1.4; color:var(--brand-ink); }
.brand-footer .footer-qualification p { margin:3px 0 0; font-size:.76rem; line-height:1.6; color:var(--brand-muted); }
.brand-footer .footer-qualification > .text-link { margin-left:auto; font-size:.78rem; line-height:1.5; white-space:nowrap; color:var(--brand-primary); }
.brand-footer .footer-datech { display:flex; align-items:center; gap:24px; padding:30px 0; border:0; border-top:1px solid var(--brand-line); border-radius:0; background:transparent; color:var(--brand-ink); transform:none; }
.brand-footer .footer-datech > .footer-image-frame { width:min(260px,100%); padding:8px; }
.brand-footer .footer-datech strong { color:var(--brand-ink); font-size:.95rem; }
.brand-footer .footer-datech span { color:var(--brand-muted); font-size:.76rem; }
.brand-footer .footer-datech-arrow { margin-left:auto; color:var(--brand-primary); }
.brand-footer .footer-datech:hover { background:var(--brand-surface); }
.brand-footer .footer-bottom { border-top:1px solid var(--brand-line); padding-top:22px; padding-bottom:22px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--brand-muted); }
.brand-footer .footer-bottom :is(.footer-copy,span,a) { font-size:.68rem; line-height:1.6; color:var(--brand-muted); }
.brand-footer .footer-copy { margin:0; }
.brand-footer .footer-bottom > div { display:flex; flex-wrap:wrap; gap:25px; }
.brand-footer .footer-bottom a:hover { color:var(--brand-primary); text-decoration:underline; }
@media(max-width:1200px) { .brand-footer .footer-grid { gap:26px; } }
@media(min-width:761px) and (max-width:1000px) {
  .brand-footer .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .brand-footer .footer-qualification { flex-wrap:wrap; gap:20px; }
  .brand-footer .footer-qualification > .footer-image-frame { width:240px; }
  .brand-footer .footer-qualification > .text-link { margin-left:0; }
}
@media(max-width:760px) {
  .brand-footer { --footer-mobile-line:var(--brand-line); }
  .brand-footer .footer-main { padding-top:45px; }
  .brand-footer .footer-grid { grid-template-columns:minmax(0,1fr); gap:28px; padding-bottom:30px; }
  .brand-footer .footer-grid h3 { margin:0 0 12px; font-size:16px; line-height:1.4; }
  .brand-footer .footer-logo { margin:0 auto 18px; }
  .brand-footer .footer-logo img { margin:0; }
  .brand-footer .footer-grid :is(p,.footer-brand-claim) { margin:0 auto 16px; font-size:15px; line-height:1.6; }
  .brand-footer .footer-grid :is(.footer-links a,.footer-address a) { display:flex; justify-content:center; align-items:center; gap:8px; min-height:44px; padding:8px 10px; margin:0; font-size:15px; line-height:1.5; }
  .brand-footer .footer-grid .footer-contact { margin-top:8px; }
  .brand-footer .footer-qualification { flex-direction:column; align-items:center; gap:16px; padding-block:28px; }
  .brand-footer .footer-qualification strong { font-size:15px; line-height:1.4; }
  .brand-footer .footer-qualification p { font-size:14px; }
  .brand-footer .footer-qualification > .text-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; font-size:14px; white-space:normal; }
  .brand-footer .footer-datech { flex-direction:column; align-items:center; gap:12px; padding-block:28px; }
  .brand-footer .footer-datech > .footer-image-frame { width:min(260px,100%); }
  .brand-footer .footer-datech-arrow { margin:0; }
  .brand-footer .footer-bottom { flex-direction:column; align-items:center; gap:12px; padding-top:24px; padding-bottom:calc(180px + env(safe-area-inset-bottom,0px)); }
  .brand-footer .footer-bottom :is(.footer-copy,span,a) { font-size:14px; line-height:1.5; }
  .brand-footer .footer-bottom > div { justify-content:center; gap:8px 16px; }
}


/* Shared DAITA / DATECH header dimensions. Keep this block identical in both projects. */
:root {
  --header-height:100px;
  --header-height-mobile:88px;
  --header-size:var(--header-height);
  --header-logo-width:220px;
  --header-logo-height:72px;
  --header-gap:24px;
}
.site-header { padding-top:env(safe-area-inset-top,0px); border-bottom-width:3px; }
.site-header .header-inner {
  width:100%; max-width:1200px; margin-inline:auto;
  height:calc(var(--header-size) - 3px); min-height:calc(var(--header-size) - 3px);
  gap:var(--header-gap); padding-block:0;
  padding-left:max(20px,env(safe-area-inset-left,0px));
  padding-right:max(20px,env(safe-area-inset-right,0px));
}
.site-header .brand {
  display:flex; flex:0 0 var(--header-logo-width); flex-direction:row; align-items:center;
  width:var(--header-logo-width); height:var(--header-logo-height); padding:0; gap:0;
}
.site-header nav:is(.site-nav,.navigation) { top:calc(100% + 3px); }
.site-header .brand img[src] {
  width:100%; height:100%; max-width:none;
  object-fit:contain; object-position:left center;
}
html { scroll-padding-top:calc(var(--header-size) + 16px + env(safe-area-inset-top,0px)); }
@media(min-width:1101px) {
  .site-header :is(.site-nav > ul,.navigation:not(.is-open)) { gap:20px; }
  .site-header :is(.site-nav > ul > li > a,.navigation:not(.is-open) > a) { font-size:14px; line-height:1.35; font-weight:600; white-space:nowrap; }
  .site-header :is(.nav-primary-cta a,.navigation:not(.is-open) .nav-cta) { min-height:48px; padding:12px 18px; }
}
@media(max-width:1100px) {
  :root {
    --header-size:var(--header-height-mobile);
    --header-logo-width:190px;
    --header-logo-height:64px;
    --header-gap:16px;
  }
  html:not(.js) .site-header .header-inner { height:auto; min-height:calc(var(--header-size) - 3px); padding-block:12px; }
}

/* Room for form content and consistent partner rows on both sites. */
:is(.contact-grid,.kontakt-grid,.application-grid) {
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,4vw,64px);
  align-items:start;
}
:is(.contact-grid,.kontakt-grid,.application-grid) > * { min-width:0; }
:is(.contact-form-wrap,.application-form) {
  min-width:0;
  padding:clamp(24px,3vw,40px);
  overflow:visible;
}
.contact-form-wrap > h2 { margin-top:0; margin-bottom:16px; font-size:clamp(1.4rem,2vw,1.8rem); line-height:1.25; }
:is(.contact-form-wrap,.application-form) :is(form,fieldset,label,.form-row,.form-field) { min-width:0; max-width:100%; }
:is(.contact-form-wrap,.application-form) .form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
:is(.contact-form-wrap,.application-form) :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { min-width:0; max-width:100%; width:100%; }
:is(.contact-form-wrap,.application-form) :is(.privacy-checkbox,.checkbox-field) { gap:12px; align-items:flex-start; }
:is(.contact-form-wrap,.application-form) :is(.privacy-checkbox,.checkbox-field) > input { flex:0 0 auto; }
:is(.contact-form-wrap,.application-form) :is(.privacy-checkbox,.checkbox-field) > span { min-width:0; }
:is(.contact-form-wrap,.application-form) [type=submit] { max-width:100%; white-space:normal; }
.contact-form-wrap .form-hint { margin-block:12px 20px; }
#application-form .form-hint { margin:0; }
.contact-form-wrap fieldset { margin-block:24px; }
.contact-form-wrap fieldset > label + label { margin-top:20px; }
.service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.service-grid > .service-card { min-width:0; }
.service-grid .service-image { aspect-ratio:16/10; }
.service-grid .service-content { padding:28px; }
.service-grid .service-image-caption { font-size:.72rem; margin:0 0 16px; color:var(--brand-muted); }
.job-card { min-width:0; padding:clamp(24px,3vw,32px); }
:is(.partner-list,.partners-grid) { display:grid; grid-template-columns:minmax(0,1fr); gap:32px; }
:is(.partner-list,.partners-grid) > .partner-card {
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  align-items:start;
  gap:48px;
  padding:40px;
  overflow:visible;
}
.partner-card .partner-brand { display:flex; align-items:center; align-self:start; min-height:110px; max-width:240px; padding:0; border:0; background:transparent; }
.partner-card .partner-brand img { width:100%; height:auto; max-width:240px; object-fit:contain; }
.partner-card .network-partner-body { display:block; min-width:0; padding:0; }
.partner-card h2 { font-size:2rem; margin:0 0 12px; }
.partner-card h3 { font-size:1.15rem; margin-bottom:20px; }
.partner-card .partner-service-list { list-style:disc; padding-left:1.2em; margin-block:20px; }
.partner-card .partner-service-list li { margin-block:8px; }
.partner-card .link-cta { margin:0; padding:0; font-size:.85rem; }
@media(max-width:1100px) {
  .service-grid,.job-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:1000px) {
  :is(.contact-grid,.kontakt-grid,.application-grid) { grid-template-columns:minmax(0,1fr); gap:32px; }
}
@media(max-width:900px) {
  :is(.partner-list,.partners-grid) > .partner-card { grid-template-columns:minmax(0,1fr); gap:24px; padding:32px; }
  .partner-card .partner-brand { min-height:0; max-width:220px; }
}
@media(max-width:760px) {
  .service-grid,.job-grid { grid-template-columns:minmax(0,1fr); }
  .service-grid .service-content { padding:24px; }
  :is(.contact-form-wrap,.application-form) { padding:24px; }
  :is(.partner-list,.partners-grid) > .partner-card { padding:24px; }
  .partner-card h2 { font-size:1.7rem; }
}
@media(max-width:600px) {
  :is(.contact-form-wrap,.application-form) .form-row { grid-template-columns:minmax(0,1fr); }
}
