/*
Theme Name: PP CarTechnik WordPress
Theme URI: https://ppcartechnik.de/
Author: PP CarTechnik
Description: WordPress-Umsetzung der bestehenden PP-CarTechnik-Website.
Version: 1.9.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: pp-car-technik
*/

.footer-consent-link{appearance:none;background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-decoration:underline;text-underline-offset:.2em}
.ppct-consent[hidden]{display:none}
.ppct-consent{align-items:flex-end;background:rgba(6,7,8,.6);display:flex;inset:0;justify-content:center;padding:10px;position:fixed;z-index:99999}
.ppct-consent-card{background:#f4efe4;border-top:3px solid #f26a21;box-shadow:0 14px 44px rgba(0,0,0,.34);color:#111;max-width:760px;padding:14px 18px;width:100%}
.ppct-consent-card .eyebrow{font-size:.64rem;margin:0}
.ppct-consent-card h2{font-size:clamp(1.15rem,2.2vw,1.4rem);margin:.1rem 0 .3rem}
.ppct-consent-card p{font-size:.8rem;line-height:1.38;margin:.25rem 0 .5rem}
.ppct-consent-options{border-top:1px solid rgba(17,17,17,.18);display:grid;margin:9px 0 5px}
.ppct-consent-options details{border-bottom:1px solid rgba(17,17,17,.18)}
.ppct-consent-options summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none;min-height:39px;padding:4px 2px}
.ppct-consent-options summary::-webkit-details-marker{display:none}
.ppct-consent-option-title{align-items:center;display:flex;gap:9px}
.ppct-consent-options input{accent-color:#f26a21;cursor:pointer;height:17px;margin:0;width:17px}
.ppct-consent-options input:disabled{cursor:not-allowed;opacity:.65}
.ppct-consent-options strong{font-size:.83rem}
.ppct-consent-options details>p{color:#494949;font-size:.73rem;line-height:1.38;margin:-1px 28px 8px}
.ppct-consent-chevron{border-bottom:2px solid #111;border-right:2px solid #111;height:8px;margin-right:5px;transform:rotate(45deg);transition:transform .18s ease;width:8px}
.ppct-consent-options details[open] .ppct-consent-chevron{transform:rotate(225deg) translate(-2px,-2px)}
.ppct-consent-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ppct-consent-actions .button{background:#111;border:2px solid #111;color:#f4efe4;flex:1;font-size:.68rem;min-width:170px;padding:7px 9px;text-align:center}
.ppct-consent-actions .button:hover,.ppct-consent-actions .button:focus-visible{background:#f26a21;border-color:#f26a21;color:#111}
.ppct-consent-actions [hidden],.ppct-consent-options[hidden]{display:none}
.ppct-consent-privacy{color:#111;display:inline-block;font-size:.7rem;font-weight:700;margin-top:7px;text-decoration:underline;text-underline-offset:.2em}
body.ppct-consent-visible{overflow:hidden}
@media (max-width:600px){.ppct-consent{padding:6px}.ppct-consent-card{max-height:calc(100vh - 12px);overflow:auto;padding:12px}.ppct-consent-options details>p{margin-left:26px;margin-right:6px}.ppct-consent-actions{display:grid;grid-template-columns:1fr}.ppct-consent-actions .button{min-width:0;width:100%}}

html { scroll-behavior: smooth; }
body { margin: 0; }

/*
 * Oxanium is bundled locally under the SIL Open Font License 1.1.
 * No request is sent to Google Fonts or another font provider.
 */
@font-face {
    font-family: "PPCT Oxanium";
    src: url("assets/fonts/Oxanium-VariableFont_wght.ttf") format("truetype");
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}
:root {
    --ppct-font-body: Inter, Aptos, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --ppct-font-display: "PPCT Oxanium", "Arial Narrow", "Helvetica Neue Condensed", "Segoe UI", Arial, sans-serif;
}
body,
button,
input,
select,
textarea {
    font-family: var(--ppct-font-body);
    font-kerning: normal;
    font-optical-sizing: auto;
}
:where(h1, h2, h3, .visual-copy, .brand-wordmark, .brand-name-label) {
    font-family: var(--ppct-font-display);
    font-weight: 750;
    text-wrap: balance;
}
:where(h1, h2, .visual-copy) {
    letter-spacing: -.045em;
}
:where(.hero-text, .section-heading > p, .rich-copy p, .legal-copy p, .service-explanation) {
    text-wrap: pretty;
}
:where(nav a, .button, .header-action, .eyebrow, .tags span, .footer-grid strong) {
    font-family: var(--ppct-font-display);
    font-weight: 650;
    letter-spacing: .065em;
}
.request-label-short { display: none; }
.footer-hours-title { display: block; margin-top: 1.2rem; }
.footer-hours { margin-top: .35rem; }
.opening-hours-band {
    color: #fff;
    background: #181818;
    border-top: 2px solid #f75511;
    padding: 64px 0;
}
.opening-hours-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 64px;
}
.opening-hours-inner h2 { font-size: clamp(34px, 4vw, 56px); }
.opening-hours-inner > p {
    margin: 0;
    color: #d0d0d0;
    font-size: 17px;
    line-height: 1.8;
}

/* Partner marks support the content without visually overpowering services. */
.partner-logo-card {
    min-height: 76px;
    opacity: .86;
    transition: opacity .2s ease, filter .2s ease, transform .2s ease;
}
.partner-logo-card:hover {
    opacity: 1;
    filter: none;
    transform: translateY(-2px);
}
.partner-detail-card { min-height: 320px; }
.partner-detail-logo { height: 96px; }

body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
@media (min-width: 901px) and (max-width: 1220px) {
    .request-label-full { display: none; }
    .request-label-short { display: inline; }
}
@media (max-width: 620px) {
    :where(h1, h2, h3, .visual-copy) {
        hyphens: auto;
        overflow-wrap: break-word;
        word-break: normal;
        text-wrap: pretty;
    }
    :where(h1, h2, .visual-copy) {
        letter-spacing: -.025em;
        line-height: 1;
    }
    .mobile-menu-actions { grid-template-columns: 1fr !important; }
    .mobile-menu-actions .header-action { font-size: 11px; }
    .partner-logo-card { min-height: 68px; }
    .opening-hours-band { padding: 48px 0; }
    .opening-hours-inner { grid-template-columns: 1fr; gap: 22px; }
}
.ppct-fallback { max-width: 1100px; margin: 4rem auto; padding: 0 1.25rem; }
.ppct-fallback h1 { font-size: clamp(2rem, 6vw, 4rem); margin-bottom: 1rem; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; width: auto; height: auto; margin: 0; overflow: visible; white-space: normal; }
.skip-link:focus { position: fixed; z-index: 100000; top: 10px; left: 10px; padding: .8rem 1rem; background: #fff; color: #101010; border: 3px solid #f75511; font-weight: 800; }

/* Google reviews: local markup only; Google is contacted after an explicit click. */
.google-reviews { background: var(--paper); border-top: 3px solid var(--red); }
.google-reviews-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; padding-bottom: 42px; border-bottom: 2px solid var(--ink); }
.google-rating-summary { text-align: right; }
.google-rating-summary > div { display: flex; justify-content: flex-end; align-items: baseline; gap: 18px; }
.google-rating-summary strong { font-family: var(--ppct-font-display); font-size: clamp(54px, 7vw, 88px); line-height: .8; }
.google-rating-summary span, .google-review-stars { color: var(--red); letter-spacing: .08em; }
.google-rating-summary span { font-size: clamp(20px, 2.6vw, 31px); white-space: nowrap; }
.google-rating-summary p { color: #626262; margin: 12px 0 0; font-size: 13px; }
.google-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 34px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.google-review-card { min-width: 0; min-height: 290px; padding: 28px; background: #ffffff42; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.google-review-meta { display: flex; align-items: center; gap: 13px; }
.google-review-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; background: var(--ink); color: #fff; font-family: var(--ppct-font-display); font-weight: 800; }
.google-review-meta strong, .google-review-meta span { display: block; }
.google-review-meta strong { font-family: var(--ppct-font-display); text-transform: uppercase; font-size: 13px; }
.google-review-meta span { color: #777; margin-top: 3px; font-size: 11px; }
.google-review-stars { margin: 24px 0 15px; font-size: 19px; }
.google-review-card blockquote { margin: 0; color: #4e4e4e; font-size: 15px; line-height: 1.65; }
.google-review-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.google-review-button-secondary { color: var(--ink); background: transparent; border-color: var(--ink); }
.google-review-button-secondary:hover { color: #fff; background: var(--ink); border-color: var(--ink); }
.google-review-source { max-width: 900px; color: #777; margin: 18px 0 0; font-size: 11px; line-height: 1.6; }
.workshop-single { min-height: 0; }
.workshop-single .workshop-copy { max-width: 900px; padding: 0; }
.workshop-single .workshop-copy > p:not(.eyebrow) { max-width: 760px; }
.workshop-single .values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }

@media (max-width: 760px) {
    .google-reviews-heading { grid-template-columns: 1fr; gap: 30px; }
    .google-rating-summary { text-align: left; }
    .google-rating-summary > div { justify-content: flex-start; flex-wrap: wrap; }
    .google-review-grid { grid-template-columns: 1fr; }
    .google-review-card { min-height: 0; }
    .google-review-actions .button { width: 100%; }
    .workshop-single .values { grid-template-columns: 1fr; gap: 0; }
}
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid #1a73e8; outline-offset: 3px; }
.desktop-nav a[aria-current="page"], .mobile-menu-panel nav a[aria-current="page"] { color: #fff; background: #ffffff18; box-shadow: inset 0 -2px #f75511; }

/* Visual editor content is rendered without an additional theme wrapper. */
.ppct-editable-empty { min-height: 20rem; }

/* Versteckte technische Formularfelder niemals anzeigen. */
.request-form input[type="hidden"] { display: none !important; }

/* 2026 accessibility and mobile tap-target improvements. */
.copyright a,
.footer-consent-link,
.footer-grid a,
.contact-socials a {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
}

@media (max-width: 620px) {
    .portrait-patrick { left: -24px; }
    .portrait-philipp { right: -34px; }
    .hero-team { overflow: clip; }
}
