/* Helpers that theme.json can't express. Keep this file small. */
.is-style-label { font-family: var(--wp--preset--font-family--mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.is-style-lead { font-size: var(--wp--preset--font-size--lead); color: var(--wp--preset--color--body); }
.wp-block-button.is-style-outline-ink .wp-block-button__link { background: transparent; color: var(--wp--preset--color--ink); border: 1px solid var(--wp--preset--color--ink); }
.wp-block-button.is-style-outline-ink .wp-block-button__link:hover { background: var(--wp--preset--color--card); }
.aja-header { border-bottom: 1px dashed var(--wp--preset--color--muted-light); }
.aja-footer { border-top: 1px dashed var(--wp--preset--color--muted-light); }
.aja-wordmark a { text-decoration: none; letter-spacing: .14em; font-weight: 500; }
.aja-header .wp-block-navigation a { text-decoration: none; }
.aja-header .wp-block-navigation .current-menu-item > a, .aja-header .wp-block-navigation a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
p { color: var(--wp--preset--color--body); }
:where(.wp-block-group.has-ink-background-color) p, :where(.wp-block-group.has-ink-background-color) a { color: var(--wp--preset--color--paper); }
figcaption { text-align: left; }
a, button, input, select, textarea { min-height: 0; }
@media (max-width: 767px) {
  .aja-header .aja-hire { display: none; }
  .wp-block-columns { gap: 24px; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
/* Header between phone and wide desktop: menu folds into the ☰ button so the header stays on one line (29 Oct). */
.aja-wordmark { white-space: nowrap; }
@media (min-width: 600px) and (max-width: 1199px) {
  .aja-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .aja-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
  .aja-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
  .aja-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; }
  .aja-header > .wp-block-group { gap: 20px; }
  .aja-header .wp-block-navigation { margin-left: auto; }
}
/* The open ☰ menu: paper background, big left-aligned links. */
.aja-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--paper) !important; color: var(--wp--preset--color--ink) !important; padding: 20px clamp(16px, 3vw, 40px) 40px; }
.aja-header .is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 48px; }
.aja-header .is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 4px !important; }
.aja-header .is-menu-open .wp-block-navigation-item { width: 100%; border-top: 1px solid var(--wp--preset--color--rule); }
.aja-header .is-menu-open .wp-block-navigation-item__content { display: block; padding: 14px 0 !important; font-size: 20px; letter-spacing: .08em; }
.aja-header .is-menu-open .wp-block-navigation__responsive-container-content, .aja-header .is-menu-open .wp-block-navigation__container { --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; align-items: stretch !important; width: 100%; text-align: left; }
.aja-header .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
/* Designed pages (template page-wide): the design supplies its own title and spacing. */
.aja-wide { margin-block-start: 0 !important; }
.aja-wide > .wp-block-post-content > * { margin-block: 0; }
.wp-site-blocks > footer.wp-block-template-part { margin-block-start: 0; }
.aja-p img { max-width: 100%; height: auto; } /* width/height attributes are for layout stability only; the design sets sizes in CSS */
.aja-p figure img { cursor: zoom-in; }
.aja-p a figure img, .aja-p figure a img { cursor: pointer; }
.aja-form-soon { position: relative; }
.aja-form-soon :disabled { opacity: .6; cursor: not-allowed; }
.aja-soon { font-family: var(--wp--preset--font-family--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--accent); margin: 12px 0 0; }
/* Lightbox */
.aja-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(20,20,18,.96); display: grid; grid-template-rows: 1fr auto; padding: 56px 16px 16px; }
.aja-lb[hidden] { display: none; }
.aja-lb img { max-width: 100%; max-height: 100%; object-fit: contain; margin: auto; display: block; min-height: 0; }
.aja-lb__cap { color: #D9D3C7; font-family: var(--wp--preset--font-family--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; text-align: center; padding: 12px 56px 0; }
.aja-lb button { position: absolute; background: transparent; color: #F3EFE6; border: 1px solid #5E5A52; width: 48px; height: 48px; font-size: 22px; cursor: pointer; }
.aja-lb button:hover { border-color: #F3EFE6; }
.aja-lb__x { top: 8px; right: 8px; }
.aja-lb__prev { left: 8px; top: 50%; }
.aja-lb__next { right: 8px; top: 50%; }
/* Switchable states on designed pages (tabs, filters, FAQs): see assets/js/page.js */
[data-aja-states], [data-aja-state] { display: contents; }
[data-aja-state][hidden] { display: none !important; }
/* Designed pages on tablets and phones. The designs were drawn at 1440 px with inline layouts;
   these rules fold them for smaller screens (same approach as the mockup's mobile key screens). */
@media (max-width: 1023px) {
  .aja-p [style*="repeat(5"], .aja-p [style*="repeat(6"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .aja-p [style*="repeat(4"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .aja-p [style*="position: sticky"] { position: static !important; }
}
@media (max-width: 767px) {
  .aja-p .wrap, .aja-p [style*="padding: 0px 40px"], .aja-p [style*="padding-left: 40px"] { padding-left: 16px !important; padding-right: 16px !important; }
  .aja-p [style*="grid-template-columns"] { grid-template-columns: minmax(0, 1fr) !important; gap: 20px !important; }
  .aja-p [style*="grid-template-columns"]:not([style*="repeat(5"]):not([style*="repeat(6"]):not([style*="repeat(auto-fill"]) > [style*="grid-column"], .aja-p [style*="grid-template-columns"]:not([style*="repeat(5"]):not([style*="repeat(6"]):not([style*="repeat(auto-fill"]) > [style*="grid-area"] { grid-column: 1 / -1 !important; }
  .aja-p [style*="repeat(5"], .aja-p [style*="repeat(6"], .aja-p [style*="repeat(auto-fill"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .aja-p [style*="display: flex"]:has(> figure) { flex-direction: column !important; }
  .aja-p [style*="display: flex"]:has(> figure) > figure { flex: none !important; width: 100% !important; }
  .aja-p h1 { font-size: clamp(38px, 11vw, 60px) !important; line-height: 1 !important; word-break: normal; overflow-wrap: anywhere; }
  .aja-p h2 { font-size: clamp(24px, 7vw, 32px) !important; }
  .aja-p [style*="font-size: 30px"], .aja-p [style*="font-size: 32px"], .aja-p [style*="font-size: 28px"] { font-size: 22px !important; }
  .aja-p section, .aja-p [style*="padding-top: 88px"], .aja-p [style*="padding-top: 72px"], .aja-p [style*="padding-top: 64px"] { padding-top: 48px !important; }
  .aja-p [style*="padding-bottom: 88px"], .aja-p [style*="padding-bottom: 72px"], .aja-p [style*="padding-bottom: 64px"] { padding-bottom: 48px !important; }
  .aja-p [style*="height: 680px"], .aja-p [style*="min-height: 680px"], .aja-p [style*="height: 640px"], .aja-p [style*="min-height: 640px"], .aja-p [style*="min-height: 600px"] { min-height: 70vh !important; height: auto !important; }
  .aja-p img[style*="height: 380px"], .aja-p img[style*="height: 420px"], .aja-p img[style*="height: 480px"], .aja-p img[style*="height: 520px"] { height: auto !important; aspect-ratio: 4 / 3; }
  .aja-p [style*="gap: 64px"], .aja-p [style*="gap: 56px"], .aja-p [style*="gap: 48px"] { gap: 24px !important; }
  .aja-p [style*="width: 220px"], .aja-p [style*="width: 260px"] { max-width: 100%; }
  .aja-p table { display: block; overflow-x: auto; }
}
@media (max-width: 767px) {
  .aja-p [style*="columns: 3"], .aja-p [style*="columns: 4"] { columns: 2 !important; column-gap: 20px !important; }
  .aja-p [style*="columns: 3"] [style*="font-size"] { font-size: 18px !important; }
  .aja-p [style*="right: -28px"] { right: 0 !important; }
}
/* Journal list (templates/home.html) */
.aja-journal__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 64px; align-items: end; margin-bottom: 64px !important; }
.aja-journal__head h1 { margin: 16px 0 0; }
.aja-kick::before { content: ""; display: inline-block; width: 24px; height: 2px; background: var(--wp--preset--color--accent); vertical-align: middle; margin-right: 10px; }
.aja-jposts { list-style: none; padding: 0; margin: 12px 0 0; border-bottom: 1px solid var(--wp--preset--color--rule); }
.aja-jpost { display: grid; grid-template-columns: 140px minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding: 20px 0; border-top: 1px solid var(--wp--preset--color--rule); align-items: baseline; }
.aja-jpost > * { margin: 0 !important; }
.aja-jpost__t { font-size: 21px; line-height: 1.25; }
.aja-jpost__t a { text-decoration: none; }
.aja-jpost__d p { margin: 0; font-size: 16px; }
.aja-jpost__d .wp-block-post-excerpt__more-text { display: none; }
@media (max-width: 767px) {
  .aja-journal__head { grid-template-columns: 1fr; margin-bottom: 40px !important; }
  .aja-jpost { grid-template-columns: 1fr; gap: 6px; }
}
/* Enquiry forms */
.aja-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.aja-privacy { font-size: 13px; margin: 12px 0 0; opacity: .85; }
.aja-privacy a { color: inherit; }
.aja-sent { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); padding: 16px clamp(16px, 3vw, 40px); position: sticky; top: 0; z-index: 50; }
.aja-sent p { color: var(--wp--preset--color--paper) !important; margin: 0; max-width: 1360px; margin-inline: auto; }
.aja-sent.is-error { background: var(--wp--preset--color--accent); }
@media (max-width: 1023px) {
  .aja-p img[style*="height: 680px"], .aja-p img[style*="height: 640px"], .aja-p img[style*="height: 600px"] { height: auto !important; aspect-ratio: 4 / 5; }
}
.aja-p img[style*="width: 96px"], .aja-p img[style*="width: 120px"] { flex: none; }

/* 0.4.4: photos sized to fit a frame (max-width + max-height 100%, e.g. the shop's square cards) keep their shape */
.aja-p img[style*="max-height: 100%"] { object-fit: contain; min-width: 0; min-height: 0; }

/* 0.4.5: big display titles (drawn at 52-168 px for 1440 px screens) scale down on phones and tablets */
@media (max-width: 767px) {
  .aja-p [style*="font-size: 52px"], .aja-p [style*="font-size: 56px"], .aja-p [style*="font-size: 60px"], .aja-p [style*="font-size: 64px"], .aja-p [style*="font-size: 68px"], .aja-p [style*="font-size: 72px"], .aja-p [style*="font-size: 76px"], .aja-p [style*="font-size: 80px"], .aja-p [style*="font-size: 84px"], .aja-p [style*="font-size: 88px"], .aja-p [style*="font-size: 92px"], .aja-p [style*="font-size: 96px"], .aja-p [style*="font-size: 104px"], .aja-p [style*="font-size: 110px"], .aja-p [style*="font-size: 120px"], .aja-p [style*="font-size: 168px"] { font-size: clamp(34px, 10.5vw, 52px) !important; line-height: 1 !important; overflow-wrap: anywhere; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .aja-p [style*="font-size: 96px"], .aja-p [style*="font-size: 104px"], .aja-p [style*="font-size: 110px"], .aja-p [style*="font-size: 120px"], .aja-p [style*="font-size: 168px"] { font-size: clamp(56px, 9vw, 88px) !important; }
}

/* 0.4.6: on tablets, two-column blocks whose photo would turn into a tall narrow strip stack instead */
@media (min-width: 768px) and (max-width: 1023px) {
  .aja-p [style*="grid-template-columns"]:has(> [style*="grid-template-rows"]),
  .aja-p [style*="grid-template-columns"]:has(> img[style*="height: 560px"]),
  .aja-p [style*="grid-template-columns"]:has(> img[style*="height: 600px"]),
  .aja-p [style*="grid-template-columns"]:has(> img[style*="height: 640px"]) { grid-template-columns: minmax(0, 1fr) !important; gap: 32px !important; }
  .aja-p img[style*="height: 520px"] { height: auto !important; aspect-ratio: 3 / 4; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .aja-p img[style*="height: 560px"] { height: auto !important; aspect-ratio: 3 / 4; }
  .aja-p [style*="repeat(4"][style*="grid-auto-rows"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* 0.5.1: visually hidden text for screen readers */
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* 0.5.7: withdrawal form (/vertrag-widerrufen/) */
.aja-widerruf { display: grid; gap: 16px; max-width: 640px; }
.aja-widerruf label { font-size: 14px; display: grid; gap: 6px; }
.aja-widerruf .fld { width: 100%; min-height: 48px; border: 1px solid #5E5A52; background: #F8F5EE; padding: 10px 14px; font: inherit; box-sizing: border-box; color: #141412; }
.aja-widerruf .aja-note { font-size: 13px; color: #5E5A52; }
.aja-widerruf__btn { min-height: 52px; padding: 0 22px; background: #141412; color: #F3EFE6; border: 0; font-family: var(--wp--preset--font-family--mono); font-size: 13px; letter-spacing: .08em; cursor: pointer; justify-self: start; }
.aja-widerruf__btn:hover { background: #2A2925; }

/* 0.5.17: tablets: form fields in one column (forms sit in a narrow column there) */
@media (min-width: 768px) and (max-width: 1023px) {
  .aja-p .aja-form[style*="grid-template-columns"], .aja-p .aja-form [style*="grid-template-columns"] { grid-template-columns: minmax(0, 1fr) !important; }
  .aja-p .aja-form [style*="grid-column"], .aja-p .aja-form [style*="grid-area"] { grid-column: 1 / -1 !important; }
}
