/* =========================================================
   LIMO Architekten – Ergänzende Gestaltung
   Farben, Schriften, Größen und Abstände: theme.json
   Hier: Bausteine, die theme.json nicht abbildet.
   ========================================================= */

:root {
	--limo-ease-out: cubic-bezier(.23, 1, .32, 1);
	--limo-gutter: clamp(16px, 4vw, 40px);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3 { text-wrap: balance; }
img { height: auto; }
a, button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
:where(a, button, .wp-element-button):focus-visible { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 4px; }

/* Abschnitte liegen ohne Lücke untereinander */
.wp-block-post-content > .alignfull { margin-block: 0; }
.limo-section { padding-block: var(--wp--preset--spacing--60); }
.limo-section--s { padding-block: var(--wp--preset--spacing--50); }

/* ---------- Blockstile ---------- */
.is-style-label { font-size: .8125rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.is-style-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.55; color: var(--wp--preset--color--ink-soft); max-width: 40ch; }
.is-style-pfeil a { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.is-style-pfeil a::after { content: "→"; transition: transform 200ms var(--limo-ease-out); }
@media (hover: hover) and (pointer: fine) { .is-style-pfeil a:hover::after { transform: translateX(4px); } }
.is-style-striche { list-style: none; padding-left: 0; display: grid; gap: 10px 24px; }
.is-style-striche li { display: flex; gap: 12px; align-items: baseline; font-weight: 500; }
.is-style-striche li::before { content: ""; flex: none; width: 12px; height: 2px; background: var(--wp--preset--color--ink); transform: translateY(-4px); }
.is-style-striche.limo-2spaltig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 520px) { .is-style-striche.limo-2spaltig { grid-template-columns: minmax(0, 1fr); } }

.wp-element-button { transition: transform 160ms var(--limo-ease-out), background-color 160ms ease; white-space: nowrap; min-height: 52px; display: inline-flex; align-items: center; }
.wp-element-button:active { transform: scale(.98); }

/* ---------- Kopf ---------- */
.limo-head { padding-block: 24px; }
.limo-head__bar { gap: 24px; }
.limo-brand { display: block; line-height: 0; }
.limo-brand img { width: 132px; height: auto; }
.limo-nav .wp-block-navigation-item__content { text-decoration: none; padding-block: 8px; background: linear-gradient(currentColor, currentColor) left 100% / 0 1px no-repeat; transition: background-size 220ms var(--limo-ease-out); }
.limo-nav .current-menu-item > .wp-block-navigation-item__content { background-size: 100% 1px; }
@media (hover: hover) and (pointer: fine) { .limo-nav .wp-block-navigation-item__content:hover { background-size: 100% 1px; } }
.limo-nav .wp-block-navigation__container { gap: 36px; }
.limo-nav .limo-nav-cta > .wp-block-navigation-item__content { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); padding: 10px 20px; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; transition: background-color 160ms ease, transform 160ms var(--limo-ease-out); }
.limo-nav .limo-nav-cta > .wp-block-navigation-item__content:active { transform: scale(.98); }
@media (hover: hover) and (pointer: fine) { .limo-nav .limo-nav-cta > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--ink-soft); } }
.limo-nav .wp-block-navigation__responsive-container-open,
.limo-nav .wp-block-navigation__responsive-container-close { font: inherit; font-weight: 500; }
.limo-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px var(--limo-gutter); }
.limo-nav .is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; align-items: stretch; font-size: 1.25rem; }
.limo-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); }
.limo-nav .is-menu-open .wp-block-navigation-item__content { padding-block: 16px; background: none; }
.limo-nav .is-menu-open .limo-nav-cta { border: 0; margin-top: 24px; }
.limo-nav .is-menu-open .limo-nav-cta > .wp-block-navigation-item__content { justify-content: center; width: 100%; padding: 14px 24px; }
@media (max-width: 599px) { .limo-head { padding-block: 16px; } .limo-brand img { width: 112px; } }

/* ---------- Einstieg Startseite ---------- */
.limo-hero { position: relative; overflow: hidden; padding-block: clamp(56px, 9vw, 136px) clamp(150px, 17vw, 250px); }
.limo-hero > * { position: relative; z-index: 1; }
.limo-hero h1 { font-size: var(--wp--preset--font-size--display); line-height: 1.02; letter-spacing: -.03em; max-width: 13ch; }
.limo-hero__actions { gap: 16px 32px; margin-top: 36px !important; }
.limo-tel { line-height: 1.3; font-variant-numeric: tabular-nums; }
.limo-tel span { display: block; font-size: .8125rem; font-weight: 500; color: var(--wp--preset--color--muted); }
.limo-tel a { font-weight: 600; text-decoration: none; }
@media (hover: hover) and (pointer: fine) { .limo-tel a:hover { text-decoration: underline; text-underline-offset: 4px; } }
.limo-hero .limo-hero__contour { position: absolute; z-index: 0; right: 0; bottom: 0; width: min(1240px, 92vw); max-width: none; margin: 0 !important; pointer-events: none; }
.limo-hero .limo-hero__contour img { width: 100%; }
@media (max-width: 860px) { .limo-hero .limo-hero__contour { width: 150vw; right: -30vw; } }

/* ---------- Kopf der Unterseiten ---------- */
.limo-page-head { position: relative; overflow: hidden; border-top: 1px solid var(--wp--preset--color--line); padding-block: clamp(48px, 7vw, 104px) clamp(96px, 12vw, 176px); }
.limo-page-head > * { position: relative; z-index: 1; }
.limo-page-head h1 { max-width: 16ch; }
.limo-page-head .limo-page-head__contour { position: absolute; z-index: 0; right: 0; bottom: 0; width: min(760px, 62vw); max-width: none; margin: 0 !important; pointer-events: none; }
.limo-page-head .limo-page-head__contour img { width: 100%; }
@media (max-width: 860px) { .limo-page-head { padding-bottom: 150px; } .limo-page-head .limo-page-head__contour { width: 100vw; right: -12vw; } }

/* ---------- Fotobänder (Bild steht beim Scrollen) ---------- */
.limo-band.wp-block-cover { min-height: clamp(234px, 28.6vw, 416px) !important; padding: 0; }
@media (hover: none), (prefers-reduced-motion: reduce) { .limo-band .has-parallax { background-attachment: scroll !important; } }

/* ---------- Positionierung ---------- */
.limo-statement { font-size: var(--wp--preset--font-size--statement); line-height: 1.28; letter-spacing: -.012em; font-weight: 500; color: var(--wp--preset--color--muted); max-width: 36ch; }
.limo-statement strong { color: var(--wp--preset--color--ink); font-weight: 600; }

/* ---------- Leistungen (Startseite) ---------- */
.limo-services__intro { position: sticky; top: 32px; }
.limo-services__intro p:not(.is-style-pfeil) { color: var(--wp--preset--color--ink-soft); max-width: 38ch; }
.limo-cluster { padding-block: 36px; border-top: 1px solid var(--wp--preset--color--ink); }
.limo-cluster:first-child { padding-top: 0; border-top: 0; }
.limo-cluster h3 { font-size: 1.5rem; line-height: 1.2; }
.limo-cluster > p { color: var(--wp--preset--color--ink-soft); }
@media (max-width: 781px) { .limo-services__intro { position: static; } }

/* ---------- Leistungsgruppen (Leistungsseite) ---------- */
.limo-svc__head { position: sticky; top: 32px; }
.limo-svc__head p { color: var(--wp--preset--color--ink-soft); }
.limo-svc__items { gap: 40px 32px; }
.limo-svc__items h3 { font-size: 1.1875rem; line-height: 1.3; }
.limo-svc__items p { color: var(--wp--preset--color--ink-soft); font-size: 1rem; }
.limo-svc__items > .wp-block-group { gap: 8px; }
@media (max-width: 781px) { .limo-svc__head { position: static; } }

/* ---------- Ablauf ---------- */
.limo-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; counter-reset: schritt; }
.limo-steps li { display: flex; flex-direction: column; gap: 8px; padding-top: 20px; border-top: 2px solid var(--wp--preset--color--ink); counter-increment: schritt; color: var(--wp--preset--color--ink-soft); font-size: 1rem; }
.limo-steps li::before { content: counter(schritt); font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--muted); }
.limo-steps li strong { color: var(--wp--preset--color--ink); font-size: 1.25rem; line-height: 1.25; font-weight: 600; }
@media (max-width: 960px) { .limo-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .limo-steps { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Zeilenlisten (Bauaufgaben, Arbeitsweise) ---------- */
.limo-rows > h2 { margin-bottom: 40px; }
.limo-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 8px; align-items: center; padding-block: 28px; border-top: 1px solid var(--wp--preset--color--line); margin-block-start: 0 !important; }
.limo-row:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.limo-row > * { margin: 0 !important; }
.limo-row > h3 { grid-column: 1 / span 6; }
.limo-row > p { grid-column: 8 / span 5; color: var(--wp--preset--color--ink-soft); }
.limo-rows--gross .limo-row > h3 { font-size: clamp(1.375rem, 1.1rem + 1vw, 2rem); line-height: 1.2; letter-spacing: -.015em; }
@media (min-width: 761px) { .limo-rows--gross .limo-row { min-height: 112px; } }
@media (max-width: 760px) { .limo-row > h3, .limo-row > p { grid-column: 1 / -1; } }

/* ---------- Über uns ---------- */
.limo-big { font-size: clamp(1.375rem, 1.05rem + 1.2vw, 2rem); line-height: 1.35; font-weight: 500; letter-spacing: -.01em; }
.limo-network__col { padding-top: 20px; border-top: 2px solid var(--wp--preset--color--ink); }
.limo-network__col + .limo-network__col { border-top-color: var(--wp--preset--color--muted); }
.limo-network__col h3 { font-size: 1.125rem; }
.limo-chamber { border-top: 1px solid var(--wp--preset--color--line); padding-block: 40px; color: var(--wp--preset--color--ink-soft); }

/* ---------- Kontakt ---------- */
.limo-contact__photo figcaption { margin-top: 12px; font-size: .875rem; color: var(--wp--preset--color--muted); text-align: left; }
.limo-contact-line { display: flex; flex-direction: column; gap: 2px; padding-block: 16px; border-top: 1px solid var(--wp--preset--color--line); margin-block-start: 0 !important; font-size: 1.0625rem; font-weight: 500; line-height: 1.5; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.limo-contact-line span { font-size: .8125rem; font-weight: 500; color: var(--wp--preset--color--muted); letter-spacing: .02em; }
.limo-contact-line a { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); font-weight: 600; text-decoration: none; }
.limo-contact-line--klein a { font-size: 1rem; }
@media (hover: hover) and (pointer: fine) { .limo-contact-line a:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; } }
.limo-entry img { aspect-ratio: 2 / 3; object-fit: cover; width: 100%; }
@media (max-width: 781px) { .limo-entry img { aspect-ratio: 4 / 5; } .limo-contact__photo img { aspect-ratio: 16 / 10; object-fit: cover; object-position: 48% 50%; } }

/* ---------- Projektkarte (für freigegebene Projekte) ---------- */
.limo-card { gap: 16px; }
.limo-card img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.limo-card h3 { font-size: 1.375rem; }
.limo-card .limo-card__facts { font-size: .9375rem; color: var(--wp--preset--color--ink-soft); }

/* ---------- Rechtstexte ---------- */
.limo-legal { padding-block: clamp(48px, 7vw, 96px); }
.limo-legal .wp-block-post-content { max-width: 68ch; }
.limo-legal .wp-block-post-content h2 { font-size: 1.25rem; margin-top: 2em; }
.limo-legal .wp-block-post-content h3 { font-size: 1.0625rem; }
.limo-legal .wp-block-post-content p,
.limo-legal .wp-block-post-content li { color: var(--wp--preset--color--ink-soft); }

/* ---------- Fuß ---------- */
.limo-foot { font-size: .9375rem; color: var(--wp--preset--color--ink-soft); padding-block: 56px 40px; }
.limo-foot img { width: 104px; height: auto; display: block; }
.limo-foot strong { color: var(--wp--preset--color--ink); font-size: .8125rem; letter-spacing: .04em; }
.limo-foot a { text-decoration: none; overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) { .limo-foot a:hover { text-decoration: underline; text-underline-offset: 4px; } }
.limo-foot__copy { font-size: .8125rem; color: var(--wp--preset--color--muted); border-top: 1px solid var(--wp--preset--color--line); padding-top: 20px; }

/* ---------- Spalten-Hilfen ---------- */
.limo-split { justify-content: space-between; gap: 40px 24px; }
@media (max-width: 781px) { .limo-kontakt-cols > .wp-block-column:first-child { order: 2; } }
.limo-checklist { margin-top: 32px; }
.limo-checklist h3 { font-size: 1.5rem; margin-bottom: 16px; }
.limo-checklist p { color: var(--wp--preset--color--ink-soft); }
.limo-panorama img { aspect-ratio: 1853 / 849; object-fit: cover; width: 100%; }
@media (max-width: 781px) { .limo-panorama img { aspect-ratio: 16 / 10; object-position: 48% 50%; } }

/* ---------- Häufige Fragen ---------- */
.limo-faq > h2 { margin-bottom: 32px; }
.limo-faq .wp-block-details { border-top: 1px solid var(--wp--preset--color--line); padding-block: 4px; margin-block-start: 0 !important; }
.limo-faq .wp-block-details:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.limo-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 20px; font-size: 1.1875rem; font-weight: 600; line-height: 1.3; }
.limo-faq summary::-webkit-details-marker { display: none; }
.limo-faq summary::after { content: "+"; flex: none; font-size: 1.5rem; font-weight: 400; line-height: 1; transition: transform 200ms var(--limo-ease-out); }
.limo-faq details[open] summary::after { transform: rotate(45deg); }
.limo-faq details > p { max-width: 68ch; color: var(--wp--preset--color--ink-soft); padding-bottom: 24px; margin: 0; }
@media (prefers-reduced-motion: reduce) { .limo-faq summary::after { transition: none; } }
.limo-svc__items .is-style-pfeil { margin-top: 4px; font-size: .9375rem; }
