/* Adivera site shell — layout styles on top of tokens.css (v1.1.0).
   All brand values come from the --ad-* custom properties in tokens.css. */

/* ---- page shell ---- */
.ad-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  padding: 0 var(--ad-space-5);
  position: relative;
}

/* Group landing: no header/index panel, taller top padding */
.ad-shell--bare { padding: var(--ad-space-7) var(--ad-space-5) 0; }

.ad-header,
.ad-index-panel,
.ad-main,
.ad-footer {
  width: 100%;
  max-width: var(--ad-container-page);
}

.ad-main { display: flex; flex-direction: column; }

/* ---- header ---- */
.ad-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 34px 0;
}

.ad-lockup {
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: none;
}
.ad-lockup:hover { color: var(--ad-text); border-bottom: none; }
.ad-lockup:focus-visible { outline-offset: 4px; }

.ad-mark { display: block; width: 40px; height: 40px; color: var(--ad-accent); }

.ad-wordmark {
  display: block;
  font-family: var(--ad-font-display);
  font-size: 15px;
  letter-spacing: var(--ad-track-wordmark);
  color: var(--ad-text);
}

.ad-division {
  display: block;
  font-size: 8px;
  letter-spacing: var(--ad-track-division);
  color: var(--ad-accent);
  margin-top: 3px;
}

/* ---- index toggle ---- */
.ad-index-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 10px 2px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ad-text);
  transition: color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .ad-index-toggle { color: var(--ad-accent); }
.ad-index-toggle:hover { color: var(--ad-accent-text); }
[data-theme="ink"] .ad-index-toggle:hover { color: var(--ad-text); }
.ad-index-toggle:focus-visible { outline: 1px solid var(--ad-focus); outline-offset: 4px; }

.ad-index-glyph {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  transition: transform var(--ad-duration-slow) var(--ad-ease);
}
.ad-index-glyph span { display: block; height: 1px; background: currentColor; }
.ad-index-glyph span:nth-child(1),
.ad-index-glyph span:nth-child(3) { width: 9px; }
.ad-index-glyph span:nth-child(2) { width: 18px; }
.ad-index-toggle[aria-expanded="true"] .ad-index-glyph { transform: rotate(90deg); }

/* ---- index panel ---- */
.ad-index-panel {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  border-top: var(--ad-hairline) solid transparent;
  transition:
    max-height 880ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 660ms ease,
    border-color 660ms;
}
.ad-index-panel.is-open {
  max-height: 300px;
  opacity: 1;
  border-top-color: var(--ad-border);
}

/* no-JS fallback: panel statically open, toggle hidden */
.ad-no-js .ad-index-panel { max-height: none; opacity: 1; border-top-color: var(--ad-border); }
.ad-no-js .ad-index-toggle { display: none; }

.ad-index-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 22px 48px;
  padding: 28px 0 26px;
}

.ad-index-link {
  display: flex;
  align-items: baseline;
  gap: 14px;
  color: var(--ad-text);
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.ad-index-link:hover { color: var(--ad-accent-text); border-bottom: none; }
[data-theme="ink"] .ad-index-link:hover { color: var(--ad-accent); }
.ad-index-link:focus-visible { outline-offset: 3px; }

.ad-index-num { font-size: 9px; letter-spacing: var(--ad-track-nav); color: var(--ad-accent); }
/* prototype fidelity: panel numbers on ink use rhodium, not rhodium-light */
[data-theme="ink"] .ad-index-num { color: var(--ad-rhodium); }

.ad-index-label { font-size: 11px; letter-spacing: var(--ad-track-label); text-transform: uppercase; }

/* ---- language switcher ---- */
.ad-lang { display: flex; gap: 14px; padding: 0 0 34px; }

.ad-lang-item {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  padding: 6px 3px;
  color: var(--ad-stone);
  border-bottom: var(--ad-hairline) solid transparent;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
a.ad-lang-item:hover { color: var(--ad-text); border-bottom-color: transparent; }
.ad-lang-item.is-current { color: var(--ad-text); border-bottom-color: var(--ad-accent); }

/* Group landing: floating switcher top right */
.ad-lang-floating { position: absolute; top: 24px; right: 26px; }
.ad-lang-floating .ad-lang { padding: 0; gap: 8px; }

/* ---- Group landing ---- */
.ad-shell--bare .ad-main { flex: 1 0 auto; }

.ad-landing {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: auto 0;
  padding: 64px 0 48px;
}

.ad-landing .ad-mark {
  width: 110px;
  height: 110px;
  transition: color var(--ad-duration-slow) var(--ad-ease);
}
.ad-landing[data-hover="ventures"] .ad-mark { color: var(--ad-bronze); }
.ad-landing[data-hover="software"] .ad-mark { color: var(--ad-slate); }

.ad-landing-wordmark {
  font-size: var(--ad-size-h1);
  /* prototype fidelity: the landing lockup tracks wider than the header wordmark */
  letter-spacing: 0.34em;
  padding-left: 0.34em;
  margin: 34px 0 0;
  color: var(--ad-text);
}

.ad-landing-division {
  font-size: var(--ad-size-label);
  letter-spacing: 0.5em;
  padding-left: 0.5em;
  color: var(--ad-accent);
  margin-top: 12px;
}

.ad-landing-divider {
  height: var(--ad-hairline);
  width: 72px;
  background: var(--ad-border-strong);
  margin: 44px 0 40px;
}

.ad-landing-claim {
  font-family: var(--ad-font-display);
  font-size: var(--ad-size-h2);
  line-height: 1.25;
  min-height: 44px;
  color: var(--ad-accent);
  transition: color var(--ad-duration-slow) var(--ad-ease);
}
.ad-landing[data-hover="ventures"] .ad-landing-claim { color: var(--ad-bronze); }
.ad-landing[data-hover="software"] .ad-landing-claim { color: var(--ad-slate); }

.ad-landing-divisions { display: flex; gap: 56px; margin-top: 72px; }

.ad-landing-division-link {
  display: inline-block;
  font-size: var(--ad-size-label);
  letter-spacing: var(--ad-track-division);
  padding: 14px 4px 12px;
  margin-right: calc(-1 * var(--ad-track-division));
  color: var(--ad-stone-light);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.ad-landing-division-link:focus-visible { outline-offset: 4px; }
.ad-landing-division-link--ventures:hover,
.ad-landing-division-link--ventures:focus-visible,
.ad-landing[data-hover="ventures"] .ad-landing-division-link--ventures {
  color: var(--ad-bronze);
  border-bottom-color: var(--ad-bronze);
}
.ad-landing-division-link--software:hover,
.ad-landing-division-link--software:focus-visible,
.ad-landing[data-hover="software"] .ad-landing-division-link--software {
  color: var(--ad-slate);
  border-bottom-color: var(--ad-slate);
}

.ad-landing .ad-cta { margin-top: 72px; }

/* ---- division landing ---- */
.ad-hero {
  padding: clamp(56px, 12vw, 104px) 0 clamp(56px, 11vw, 96px);
  max-width: var(--ad-container-reading);
}

.ad-hero-claim {
  font-size: clamp(40px, 9vw, 56px);
  line-height: 1.1;
  color: var(--ad-text);
}

.ad-hero-sub {
  font-family: var(--ad-font-display);
  font-size: 22px;
  color: var(--ad-accent-text);
  margin-top: 22px;
}

.ad-hero-intro {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ad-text-body);
  margin: 36px 0 0;
  max-width: 560px;
}

.ad-hero-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 0;
  font-size: var(--ad-size-micro);
  letter-spacing: var(--ad-track-label);
  color: var(--ad-text-secondary);
  margin-top: 44px;
}
.ad-hero-fields-dot { padding: 0 14px; }

.ad-fields {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 72px;
}

.ad-fields-label {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  color: var(--ad-text-secondary);
  margin-bottom: 36px;
}

.ad-fields-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 36px 48px;
}

.ad-field-title {
  font-family: var(--ad-font-display);
  font-size: 19px;
  color: var(--ad-text);
}

.ad-field-text {
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--ad-text-secondary);
  margin: 10px 0 0;
}

.ad-closing {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 88px;
  display: flex;
  flex-wrap: wrap;
  gap: 28px 64px;
  align-items: baseline;
  justify-content: space-between;
}

.ad-closing-line {
  font-family: var(--ad-font-display);
  font-size: 26px;
  color: var(--ad-text);
  max-width: 520px;
}

/* ---- contact page ---- */
.ad-hero--contact { padding: clamp(56px, 11vw, 96px) 0 clamp(48px, 9vw, 80px); }
.ad-hero-claim--contact { font-size: clamp(36px, 8vw, 48px); line-height: 1.15; }
[data-theme="ink"] .ad-hero-sub { color: var(--ad-accent); }

/* letterspaced section/field label (write-to-us, address cities, follow) */
.ad-section-label {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  color: var(--ad-text-secondary);
}
[data-theme="ink"] .ad-section-label { color: var(--ad-stone); }

.ad-contact-write {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 64px;
}
.ad-contact-write .ad-section-label { margin-bottom: 36px; }

.ad-form {
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.ad-field { display: flex; flex-direction: column; gap: 8px; }

.ad-field-label {
  font-size: 9px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  color: var(--ad-text-secondary);
}
[data-theme="ink"] .ad-field-label { color: var(--ad-stone); }

.ad-field-input {
  background: transparent;
  border: none;
  border-bottom: var(--ad-hairline) solid var(--ad-border-strong);
  border-radius: var(--ad-radius);
  padding: 10px 0;
  font-size: 15px;
  color: var(--ad-text);
  font-family: inherit;
  outline: none;
  transition: border-color var(--ad-duration-base) var(--ad-ease);
}
.ad-field-input:focus { border-bottom-color: var(--ad-accent); }
.ad-field-input.is-invalid { border-bottom-color: var(--ad-critical); }
.ad-field-input--area { line-height: 1.7; resize: vertical; }

.ad-field-error {
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--ad-critical);
  margin: 2px 0 0;
}
[data-theme="ink"] .ad-field-error { color: var(--ad-critical-on-ink); }

.ad-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 36px;
  align-items: baseline;
  margin-top: 8px;
}

.ad-mail-alt { font-size: var(--ad-size-micro); color: var(--ad-stone); }

.ad-mail-link {
  color: var(--ad-text-secondary);
  border-bottom: var(--ad-hairline) solid var(--ad-border-strong);
  padding-bottom: 1px;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.ad-mail-link:hover { color: var(--ad-accent-text); border-bottom-color: var(--ad-accent); }
[data-theme="ink"] .ad-mail-link:hover { color: var(--ad-accent); }

.ad-contact-channels {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 88px;
}

.ad-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 48px 64px;
}

.ad-block-name {
  font-family: var(--ad-font-display);
  font-size: 22px;
  color: var(--ad-text);
  margin-top: 16px;
}

.ad-block-lines {
  font-size: var(--ad-size-small);
  line-height: 2;
  color: var(--ad-text-secondary);
  margin-top: 14px;
}

.ad-block-note { font-size: var(--ad-size-micro); color: var(--ad-stone); margin-top: 8px; }

.ad-line-link {
  display: inline-block;
  font-size: var(--ad-size-small);
  color: var(--ad-text);
  margin-top: 16px;
  border-bottom: var(--ad-hairline) solid var(--ad-border-strong);
  padding-bottom: 2px;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.ad-line-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }
/* prototype fidelity: contact phone/mail lines on ink use the accent, not ivory */
[data-theme="ink"] .ad-contact-grid .ad-line-link { color: var(--ad-accent); }

.ad-social-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 20px;
}

.ad-social-link {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ad-text);
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.ad-social-link:hover { color: var(--ad-accent-text); border-bottom: none; }
[data-theme="ink"] .ad-social-link:hover { color: var(--ad-accent); }
.ad-social-link:focus-visible { outline-offset: 3px; }
.ad-social-name { font-size: var(--ad-size-small); }
.ad-social-handle { font-size: var(--ad-size-micro); color: var(--ad-stone); }

/* ---- legal notice ---- */
.ad-hero--legal { padding: clamp(48px, 9vw, 80px) 0 clamp(40px, 7vw, 64px); }
.ad-hero-claim--legal { font-size: clamp(34px, 7.5vw, 46px); line-height: 1.14; }

.ad-legal {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 88px;
}

.ad-legal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 44px 64px;
}

.ad-legal-phone { margin-top: 12px; }
.ad-legal-phone .ad-line-link { margin-top: 0; }

.ad-legal-docs {
  border-top: var(--ad-hairline) solid var(--ad-border);
  margin-top: 56px;
  padding-top: 44px;
}

.ad-legal-doc-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin-top: 22px;
}
.ad-legal-doc-list .ad-line-link { margin-top: 0; }

.ad-legal-copyright {
  font-size: var(--ad-size-label);
  line-height: 1.8;
  color: var(--ad-stone);
  margin: 64px 0 0;
  max-width: 560px;
}

/* ---- legal documents (AGB / Datenschutz, shared German reading column) ---- */
.ad-doc { max-width: 720px; padding: clamp(40px, 7vw, 64px) 0 88px; }

.ad-doc h1 { font-size: clamp(30px, 6.5vw, 40px); line-height: 1.16; }

.ad-doc-label {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  color: var(--ad-stone);
  margin-top: 18px;
}

.ad-doc h2 {
  font-size: 20px;
  letter-spacing: 0.02em;
  margin: 52px 0 18px;
  display: flex;
  gap: 14px;
  align-items: baseline;
}

.ad-doc h3 {
  font-size: var(--ad-size-body);
  margin: 32px 0 14px;
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.ad-doc-num { font-size: var(--ad-size-label); letter-spacing: 0.1em; color: var(--ad-accent); }
.ad-doc h3 .ad-doc-num { font-size: var(--ad-size-micro); }
/* prototype fidelity: section numbers on ink use rhodium, not rhodium-light */
[data-theme="ink"] .ad-doc-num { color: var(--ad-rhodium); }

.ad-doc p {
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--ad-text-body);
  margin: 0 0 14px;
}

.ad-doc-sign {
  font-family: var(--ad-font-display);
  font-size: var(--ad-size-body);
  color: var(--ad-accent-text);
  margin-top: 56px;
}
[data-theme="ink"] .ad-doc-sign { color: var(--ad-accent); }

/* ---- doc header variant (Group AGB / Datenschutz) ---- */
.ad-header-legal {
  font-size: 10px;
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  color: var(--ad-text);
  padding: 10px 2px;
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .ad-header-legal { color: var(--ad-accent); }
.ad-header-legal:hover { color: var(--ad-accent-text); border-bottom: none; }
[data-theme="ink"] .ad-header-legal:hover { color: var(--ad-text); }
.ad-header-legal:focus-visible { outline-offset: 4px; }

/* ---- CTA button ---- */
.ad-cta {
  display: inline-block;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--ad-size-micro);
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  padding: 16px 30px 15px;
  margin-right: calc(-1 * var(--ad-track-cta));
  color: var(--ad-text);
  border: var(--ad-hairline) solid var(--ad-text);
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease),
    background var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .ad-cta { color: var(--ad-accent); border-color: var(--ad-accent); }
.ad-cta:hover {
  background: var(--ad-text);
  border-color: var(--ad-text);
  color: var(--ad-surface);
}
[data-theme="ink"] .ad-cta:hover {
  background: var(--ad-accent);
  border-color: var(--ad-accent);
  color: var(--ad-surface);
}
.ad-cta:focus-visible { outline-offset: 3px; }

/* ---- footer ---- */
.ad-footer {
  border-top: var(--ad-hairline) solid var(--ad-border);
  margin-top: auto;
  padding: 22px 0 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  justify-content: space-between;
  align-items: baseline;
}

.ad-footer-links { display: flex; gap: 24px; align-items: baseline; }

.ad-footer-link {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  padding: 2px 0;
  color: var(--ad-text-secondary);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .ad-footer-link { color: var(--ad-stone); }
.ad-footer-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }
[data-theme="ink"] .ad-footer-link:hover { color: var(--ad-accent); border-bottom-color: var(--ad-accent); }
/* Group footer: division links hover in the target division's accent */
[data-theme="ink"] .ad-footer-link--ventures:hover { color: var(--ad-bronze); border-bottom-color: var(--ad-bronze); }
[data-theme="ink"] .ad-footer-link--software:hover { color: var(--ad-slate); border-bottom-color: var(--ad-slate); }

.ad-footer-locations {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  color: var(--ad-text-secondary);
}
[data-theme="ink"] .ad-footer-locations { color: var(--ad-stone); }

.ad-footer-legal {
  font-size: 9px;
  letter-spacing: var(--ad-track-legal);
  line-height: 2;
  color: var(--ad-stone);
}
[data-theme="ink"] .ad-footer-legal { color: var(--ad-stone-shadow); }
