/*
Theme Name: UPSCALE Consulting
Theme URI: https://consulting-upscale.de
Author: UPSCALE Consulting UG (haftungsbeschränkt)
Description: Individuelles Block-Theme für UPSCALE Consulting. Design, Farben, Schriften (lokal) und fertige Seitenvorlagen.
Version: 1.4.0
Requires at least: 6.5
Requires PHP: 7.4
License: Proprietär
Text Domain: upscale-consulting
Update URI: false
*/

/* ---------- Grundgerüst ---------- */
:root { --up-navy:#051F40; --up-navy2:#12284A; --up-accent:#FF7A45; --up-text:#44506A; --up-muted:#5B6680; --up-surface:#F3F5F9; --up-line:#E4E8F0; }
.wp-site-blocks > * { margin-block-start: 0 !important; }
.wp-block-post-content > .alignfull { margin-block: 0 !important; }
body { -webkit-font-smoothing: antialiased; }
p { color: var(--up-text); }
:where(.up-dark) p { color: #C3CDDE; }
:focus-visible { outline: 3px solid var(--up-accent); outline-offset: 2px; }
img { max-width: 100%; height: auto; }

/* ---------- Abschnitte ---------- */
.up-section { padding-block: clamp(64px, 8vw, 112px) !important; }
.up-section-sm { padding-block: clamp(40px, 5vw, 72px) !important; }
.up-dark { background: var(--up-navy); color: #fff; }
.up-dark :where(h1,h2,h3,h4) { color: #fff; }
.up-dark a:not(.wp-element-button) { color: #fff; }
.up-light { background: var(--up-surface); }
.up-footer-bg { background: #071322; color: #AFBBD0; }
.up-stack > * { margin-block: 0 !important; }
.up-stack { display: flex; flex-direction: column; gap: 20px; }
.up-stack-sm { display: flex; flex-direction: column; gap: 10px; }
.up-stack-sm > * { margin-block: 0 !important; }
.up-intro > * { max-width: 760px; }
.up-narrow { max-width: 820px !important; margin-inline: auto !important; }

/* ---------- Raster ---------- */
.up-split, .up-grid-2, .up-grid-3, .up-grid-4, .up-grid-5, .up-row { gap: 20px; }
.up-split > *, .up-grid-2 > *, .up-grid-3 > *, .up-grid-4 > *, .up-grid-5 > *, .up-row > * { margin: 0 !important; min-width: 0; }
.up-split { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 64px); align-items: center; }
.up-split > * { flex: 1 1 440px; }
.up-split > .up-split-side { flex: 1 1 360px; }
.up-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
.up-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.up-grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 32px; }
.up-grid-5 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.up-row { display: flex !important; flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 32px; }
.up-row > .up-stack-sm, .up-row > .up-title { flex: 1 1 420px; }

.up-grid-tight { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) !important; gap: 16px !important; }
.up-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }

/* ---------- Typografie-Bausteine ---------- */
.up-eyebrow { font-size: 14px !important; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--up-muted) !important; }
.up-dark .up-eyebrow { color: #AFBBD0 !important; }
.up-pill { align-self: flex-start; display: inline-block; border: 1px solid #2C4470; color: #D5DDEA !important; padding: 8px 16px; border-radius: 999px; font-size: 14px !important; font-weight: 500; }
.up-lead { font-size: clamp(1.0625rem, 1.4vw, 1.1875rem) !important; line-height: 1.6; max-width: 600px; }
.up-small { font-size: 14px !important; }
.up-big { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: clamp(2.5rem, 4vw, 3.25rem) !important; line-height: 1 !important; letter-spacing: -0.02em; color: var(--up-navy) !important; }
.up-dark .up-big, .up-card-navy .up-big { color: #fff !important; }
.up-num { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 15px !important; color: var(--up-muted) !important; }
.up-title { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(1.125rem, 1.6vw, 1.4375rem) !important; line-height: 1.25 !important; color: var(--up-navy) !important; }
.up-dark .up-title, .up-card-navy .up-title, .up-card-dark .up-title { color: #fff !important; }
.up-bar { width: 40px; height: 4px; border-radius: 4px; background: var(--up-accent); }
.up-check { padding-left: 30px; position: relative; color: #D5DDEA !important; }
.up-check::before { content: "✓"; position: absolute; left: 0; color: var(--up-accent); font-weight: 700; }
.up-dots { color: #D5DDEA !important; font-size: 14px !important; }

/* ---------- Karten ---------- */
.up-card, .up-card-white, .up-card-dark, .up-card-navy { border-radius: 24px; padding: clamp(24px, 3vw, 32px) !important; display: flex; flex-direction: column; gap: 14px; }
.up-card > *, .up-card-white > *, .up-card-dark > *, .up-card-navy > * { margin-block: 0 !important; }
.up-card { background: var(--up-surface); }
.up-card, .up-card-white, .up-card-dark, .up-card-navy, .up-tile, .up-post-card { box-sizing: border-box; }
.up-card-navy .up-num, .up-card-dark .up-num { color: #AFBBD0 !important; }
.up-card-white { background: #fff; border: 1px solid var(--up-line); }
.up-card-dark { background: var(--up-navy2); border: 1px solid #22395F; color: #fff; }
.up-card-navy { background: var(--up-navy); color: #fff; }
.up-card-navy p, .up-card-dark p { color: #C3CDDE; }
.up-card-navy a:not(.wp-element-button), .up-card-dark a:not(.wp-element-button) { color: #fff; }
.up-card-navy :where(h2,h3), .up-card-dark :where(h2,h3) { color: #fff; }
.up-card .up-more, .up-card-white .up-more { margin-top: auto !important; font-weight: 600; }
.up-tile { background: var(--up-navy); border-radius: 16px; padding: 18px !important; display: flex; flex-direction: column; gap: 4px; }
.up-tile > * { margin: 0 !important; }
.up-tile p:first-child { color: #fff !important; font-weight: 600; }
.up-tile p:first-child::before { content: ""; display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--up-accent); margin-bottom: 10px; }
.up-tile p + p { color: #AFBBD0 !important; font-size: 13px !important; }
.up-badge { align-self: flex-start; background: var(--up-accent); color: var(--up-navy) !important; font-size: 13px !important; font-weight: 600; padding: 6px 12px; border-radius: 999px; }
.up-tag { align-self: flex-start; background: var(--up-surface); color: var(--up-navy) !important; font-size: 13px !important; font-weight: 600; padding: 6px 12px; border-radius: 999px; }
.up-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.up-chips > * { margin: 0 !important; background: var(--up-surface); padding: 6px 12px; border-radius: 999px; font-size: 13px !important; font-weight: 600; color: var(--up-navy) !important; }
.up-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--up-navy); color: #fff !important; display: flex; align-items: center; justify-content: center; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 22px !important; }
.up-step { border-top: 2px solid var(--up-navy); padding-top: 24px !important; display: flex; flex-direction: column; gap: 12px; }
.up-step > * { margin: 0 !important; }
.up-trust p:first-child { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 18px !important; color: var(--up-navy) !important; }
.up-trust p + p { font-size: 15px !important; color: var(--up-muted) !important; }
.up-trust { display: flex; flex-direction: column; gap: 4px; border-left: 3px solid var(--up-accent); padding-left: 16px !important; }
.up-trust > * { margin: 0 !important; }
.up-band { background: var(--up-accent); }
.up-band :where(h2,p) { color: var(--up-navy) !important; }
.up-note { background: #FFF4EC; border: 1px solid #FFD2BA; border-radius: 16px; padding: 18px 22px !important; font-size: 15px !important; color: #5A2A10 !important; }
.up-border-bottom { border-bottom: 1px solid var(--up-line); }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border: 1.5px solid #4A6290; }
.wp-block-button.up-btn-dark > .wp-block-button__link { background: var(--up-navy); color: #fff; }
.up-band .wp-block-button > .wp-block-button__link { background: var(--up-navy); color: #fff; }

/* ---------- FAQ ---------- */
.wp-block-details { background: #fff; border-radius: 18px; padding: 22px 26px !important; }
.up-light .wp-block-details { background: #fff; }
.up-faq-surface .wp-block-details { background: var(--up-surface); }
.wp-block-details summary { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.125rem; cursor: pointer; color: var(--up-navy); }
.wp-block-details > p { margin-top: 12px; }
.up-faq { display: flex; flex-direction: column; gap: 12px; }
.up-faq > * { margin: 0 !important; }

/* ---------- Rechtstexte & Artikel ---------- */
.up-legal h2 { font-size: 1.375rem !important; font-weight: 600; letter-spacing: 0; padding-top: 32px; border-top: 1px solid var(--up-line); margin-top: 32px !important; }
.up-legal p { color: #2E3A52; line-height: 1.75; }
.up-article { max-width: 760px !important; margin-inline: auto !important; }
.up-article p, .up-article li { font-size: 1.125rem; line-height: 1.8; color: #2E3A52; }
.up-article h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); margin-top: 2.5rem !important; }
.up-summary { background: var(--up-surface); border-left: 4px solid var(--up-accent); border-radius: 0 18px 18px 0; padding: 24px 28px !important; }
.up-summary > * { margin-block: 0 0.5rem !important; }

/* ---------- Kopf- und Fußbereich ---------- */
.up-header { background: var(--up-navy); }
.up-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; padding-block: 20px !important; }
.up-header-inner > * { margin: 0 !important; }
.up-logo svg { height: 44px; width: auto; display: block; }
.up-footer-logo svg { height: 40px; width: auto; display: block; }
.up-header .wp-block-navigation { gap: 28px; font-size: 15px; }
.up-header .wp-block-navigation a { color: #D5DDEA; text-decoration: none; }
.up-header .wp-block-navigation a:hover, .up-header .wp-block-navigation .current-menu-item > a { color: #fff; }
.up-header .wp-block-navigation__submenu-container { background: var(--up-navy) !important; border: 1px solid #22395F !important; border-radius: 12px; padding: 8px !important; }
.up-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--up-navy) !important; color: #fff !important; }
.up-header .wp-block-navigation__responsive-container-open, .up-header .wp-block-navigation__responsive-container-close { color: #fff; }
.up-header .wp-block-button__link { padding: 12px 20px; font-size: 15px; }
.up-footer a { color: #AFBBD0; text-decoration: none; }
.up-footer a:hover { color: #fff; }
.up-footer p { color: #AFBBD0; font-size: 14px; margin: 0; }
.up-footer .up-footer-head { color: #fff !important; font-weight: 600; }
.up-footer-legal { border-top: 1px solid #1C2B44; padding-block: 20px 32px !important; }
.up-footer-legal p { font-size: 13px; color: #8E9BB3; }

/* ---------- Ratgeber-Übersicht ---------- */
.up-posts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; list-style: none; padding: 0; }
.up-posts > li { margin: 0 !important; }
.up-post-card { height: 100%; border: 1px solid var(--up-line); border-radius: 24px; padding: 28px !important; display: flex; flex-direction: column; gap: 12px; box-sizing: border-box; }
.up-post-card > * { margin: 0 !important; }
.up-post-card .wp-block-post-title a { text-decoration: none; }
.up-post-card .wp-block-post-terms a { background: var(--up-surface); padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; text-decoration: none; }
.up-post-card .wp-block-post-date { margin-top: auto !important; font-size: 14px; color: var(--up-muted); }
.up-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; color: #C3CDDE; font-size: 15px; }
.up-meta > * { margin: 0 !important; }
.up-dark .wp-block-post-terms a { display: inline-block; background: #E3EAF7; color: var(--up-navy); padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; text-decoration: none; }

@media (max-width: 781px) {
	.up-header .wp-block-buttons { display: none; }
}

/* ---------- Kontaktformular (Fluent Forms) ---------- */
.fluentform .ff-el-group { margin-bottom: 18px !important; }
.fluentform .ff-el-input--label label { font-weight: 600 !important; font-size: 14px !important; color: var(--up-navy) !important; }
.fluentform .ff-el-is-required.asterisk-right label::after, .fluentform .ff-el-is-required.asterisk-left label::before { color: #B4431F !important; }
.fluentform .ff-el-form-control {
	font-family: inherit !important; font-size: 16px !important; color: var(--up-navy) !important;
	background: #fff !important; border: 1.5px solid #B9C2D3 !important; border-radius: 12px !important;
	padding: 13px 16px !important; min-height: 50px; box-shadow: none !important;
}
.fluentform textarea.ff-el-form-control { min-height: 140px; }
.fluentform .ff-el-form-control::placeholder { color: #6B7489 !important; opacity: 1; }
.fluentform .ff-el-form-control:focus { border-color: var(--up-navy) !important; outline: 3px solid var(--up-accent) !important; outline-offset: 1px; }
.fluentform .ff-el-form-check label, .fluentform .ff_t_c, .fluentform .ff-el-tc label { font-size: 14px !important; line-height: 1.6 !important; color: var(--up-text) !important; }
.fluentform .ff-el-form-check-input { width: 20px; height: 20px; accent-color: var(--up-navy); }
.fluentform .ff-btn-submit, .fluentform .ff-btn-submit.ff_btn_style {
	background: var(--up-accent) !important; color: var(--up-navy) !important; border: none !important;
	border-radius: 999px !important; padding: 16px 32px !important; min-height: 52px;
	font-family: inherit !important; font-size: 17px !important; font-weight: 600 !important; box-shadow: none !important; opacity: 1 !important;
}
.fluentform .ff-btn-submit:hover, .fluentform .ff-btn-submit:focus { background: #FF915F !important; color: var(--up-navy) !important; }
.fluentform .ff-btn-submit:focus-visible { outline: 3px solid var(--up-navy) !important; outline-offset: 2px; }
.fluentform .error, .fluentform .text-danger { color: #B4431F !important; font-size: 14px !important; }
.fluentform .ff-el-is-error .ff-el-form-control { border-color: #B4431F !important; }
.ff-message-success { border: none !important; border-left: 4px solid var(--up-accent) !important; background: var(--up-surface) !important; color: var(--up-navy) !important; border-radius: 0 16px 16px 0 !important; padding: 20px 24px !important; box-shadow: none !important; font-size: 17px; }

/* ---------- Menü: Farben erzwingen (v1.1.1) ---------- */
.up-header .wp-block-navigation,
.up-header .wp-block-navigation .wp-block-navigation-item__content,
.up-header .wp-block-navigation a,
.up-header .wp-block-navigation .wp-block-navigation-submenu__toggle,
.up-header .wp-block-navigation .wp-block-navigation__submenu-icon { color: #D5DDEA !important; }
.up-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.up-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.up-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content { color: #FFFFFF !important; }
.up-header .wp-block-navigation__submenu-icon svg { stroke: currentColor !important; }
.up-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: #D5DDEA !important; padding: 8px 12px !important; }
.up-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #FFFFFF !important; font-size: 18px; }
.up-header .wp-block-navigation__responsive-container-open svg,
.up-header .wp-block-navigation__responsive-container-close svg { fill: #FFFFFF !important; }

/* ---------- Menü rechts neben dem Button (v1.1.2) ---------- */
.up-header-inner { justify-content: flex-start !important; column-gap: 32px !important; }
.up-header-inner > .wp-block-navigation { margin-left: auto !important; }

/* ---------- Kacheln: Symbole, Hover, ganze Kachel klickbar (v1.2.1) ---------- */
#leistungen .up-grid-3 > .up-card::before { content: ""; display: block; width: 32px; height: 32px; background-repeat: no-repeat; background-size: 32px 32px; margin-bottom: 2px; }
#leistungen .up-grid-3 > .up-card { min-height: 220px; }
#leistungen .up-grid-3 > .up-card:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23051F40%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2016.5c-1.5%201.3-2%205-2%205s3.7-.5%205-2c.7-.8.7-2.1-.1-2.9a2.2%202.2%200%200%200-2.9-.1z%22/%3E%3Cpath%20d%3D%22M12%2015l-3-3a22%2022%200%200%201%202-3.9A12.9%2012.9%200%200%201%2022%202c0%202.7-.8%207.5-6%2011a22.4%2022.4%200%200%201-4%202z%22/%3E%3C/svg%3E"); }
#leistungen .up-grid-3 > .up-card:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23051F40%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022s8-4%208-10V5l-8-3-8%203v7c0%206%208%2010%208%2010z%22/%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4%22/%3E%3C/svg%3E"); }
#leistungen .up-grid-3 > .up-card:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23051F40%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%227%22/%3E%3Cpath%20d%3D%22M21%2021l-4.3-4.3%22/%3E%3C/svg%3E"); }
#leistungen .up-grid-3 > .up-card:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23051F40%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221.5%22/%3E%3Crect%20x%3D%2214%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221.5%22/%3E%3Cpath%20d%3D%22M10%206.5h4a3%203%200%200%201%203%203V14%22/%3E%3C/svg%3E"); }
#leistungen .up-grid-3 > .up-card:nth-child(5)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23051F40%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2017l6-6%204%204%208-8%22/%3E%3Cpath%20d%3D%22M15%207h6v6%22/%3E%3C/svg%3E"); }
#leistungen .up-grid-3 > .up-card:nth-child(6)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23051F40%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpath%20d%3D%22M14%202v6h6%22/%3E%3Cpath%20d%3D%22M9%2015l2%202%204-4%22/%3E%3C/svg%3E"); }
.up-card, .up-card-white { transition: transform .2s ease, box-shadow .2s ease; }
.up-card:has(.up-more a:not([href^="mailto"])), .up-card-white:has(.up-more a:not([href^="mailto"])) { position: relative; cursor: pointer; }
.up-card:has(.up-more a:not([href^="mailto"])):hover, .up-card-white:has(.up-more a:not([href^="mailto"])):hover { transform: translateY(-6px); box-shadow: 0 18px 40px -18px rgba(5, 31, 64, .35); }
.up-card .up-more a:not([href^="mailto"])::after, .up-card-white .up-more a:not([href^="mailto"])::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.up-more a { text-decoration: none; }
.up-card:hover .up-more a, .up-card-white:hover .up-more a, .up-more a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .up-card, .up-card-white { transition: none; } .up-card:hover, .up-card-white:hover { transform: none !important; } }

/* ---------- Illustrationen (v1.3.0) ---------- */
.up-illu { margin: 0 !important; }
.up-illu img { display: block; width: 100%; height: auto; border-radius: 24px; }

/* ---------- Hero nur Headline (v1.4.0) ---------- */
.up-hero-solo { max-width: 980px !important; margin-left: 0 !important; padding-block: clamp(16px, 4vw, 48px) !important; }
.wp-block-group.alignfull > .up-hero-solo { margin-left: max(0px, calc((100% - 1200px) / 2)) !important; }
.up-hero-solo h1 { font-size: clamp(2.5rem, 6.2vw, 5rem) !important; line-height: 1.02 !important; }
.up-hero-solo .up-lead { max-width: 640px; }
.up-accent-text { color: var(--up-accent); }
