/*
Theme Name: Personal Protect
Theme URI: https://personal-protect.ch
Template: twentytwentyfive
Author: Personal Protect
Description: Child-Theme von Twenty Twenty-Five für Personal Protect, Steffisburg BE. Bringt Farben, Schriften, Bausteine und die elf Seiten mit – alle Einstellungen, Stilvarianten und Muster von Twenty Twenty-Five bleiben nutzbar.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: personal-protect
Tags: block-theme, full-site-editing, one-column, accessibility-ready
*/


:root{
  --pp-white:#ffffff;
  --pp-chalk-50:#F7F9FA; --pp-chalk-100:#EEF2F4; --pp-chalk-200:#E1E7EA; --pp-chalk-300:#CED6DB;
  --pp-slate-500:#7C878F; --pp-slate-600:#636E76; --pp-slate-700:#465057; --pp-ink-900:#1A2124;
  --pp-spruce-50:#EDF3F1; --pp-spruce-300:#96B6AE; --pp-spruce-700:#21423C; --pp-spruce-800:#1A342F;
  --pp-lake-700:#0F5A6E; --pp-lake-800:#0B4757; --pp-lake-900:#083743;
  --pp-success-700:#1F6B4C; --pp-success-50:#E8F2ED; --pp-alert-700:#9B3226; --pp-alert-50:#F9E9E6;
  --pp-radius:14px; --pp-radius-media:20px;
  --pp-shadow-1:0 1px 2px rgba(26,33,36,.06);
  --pp-shadow-2:0 2px 8px rgba(26,33,36,.08);
  --pp-ease:cubic-bezier(.2,.6,.3,1);
}

body{ text-wrap:pretty; }
:where(a):focus-visible,:where(button):focus-visible,:where(input):focus-visible,:where(textarea):focus-visible,:where(select):focus-visible{
  outline:2px solid var(--pp-lake-700); outline-offset:2px;
}

/* ---------- Kopfbereich ---------- */
.pp-header{
  position:sticky; top:0; z-index:9999;
  border-bottom:1px solid var(--pp-chalk-200);
}
.pp-header::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:rgba(247,249,250,.92); backdrop-filter:blur(8px);
  pointer-events:none;
}
.admin-bar .pp-header{ top:32px; }
.pp-header .wp-block-site-title a{ text-decoration:none; }
.pp-header .pp-standort{ margin:0; font-size:.875rem; letter-spacing:.08em; text-transform:uppercase; color:var(--pp-slate-600); }
.pp-header .wp-block-navigation{ font-weight:600; }
.pp-header .wp-block-navigation a{ color:var(--pp-slate-700); text-decoration:none; padding:12px; border-radius:10px; }
.pp-header .wp-block-navigation a:hover{ color:var(--pp-lake-800); }
.pp-header .wp-block-navigation .current-menu-item > a{ box-shadow:inset 0 -3px 0 0 var(--pp-lake-700); }
.pp-telefon{ margin:0; font-weight:600; white-space:nowrap; }
.pp-telefon a{ color:var(--pp-ink-900); text-decoration:none; }
@media (max-width:1060px){
  .pp-header .wp-block-navigation__container{ flex-wrap:wrap; }
}
@media (max-width:560px){
  .pp-telefon{ display:none; }
}

/* ---------- Abschnitte ---------- */
.pp-band{ padding-left:0; padding-right:0; }
@media (max-width:781px){
  .pp-band{ padding-top:48px !important; padding-bottom:48px !important; }
}

/* ---------- Blockstile ---------- */
.is-style-pp-eyebrow{
  font-size:.875rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--pp-lake-800); margin-bottom:12px;
}
.is-style-pp-lead{ font-size:1.25rem; line-height:1.7; max-width:52ch; }
.is-style-pp-caption{ font-size:1rem; color:var(--pp-slate-600); }
.is-style-pp-claim{
  font-family:"Source Serif 4",Georgia,serif; font-size:1.375rem; font-weight:600;
  color:var(--pp-lake-800); line-height:1.35;
}
.is-style-pp-quote{ font-family:"Source Serif 4",Georgia,serif; font-size:1.5rem; line-height:1.35; }
.is-style-pp-price{ font-family:"Source Serif 4",Georgia,serif; font-size:2.125rem; font-weight:600; color:var(--pp-ink-900); line-height:1.1; margin:0; }
.is-style-pp-price-soft{ font-weight:600; color:var(--pp-lake-800); }
.is-style-pp-phone{ font-size:1.25rem; font-weight:600; }
.is-style-pp-phone a{ color:var(--pp-ink-900); text-decoration:none; }
.is-style-pp-tags{ font-size:1.125rem; color:var(--pp-slate-700); max-width:56ch; }

.is-style-pp-card{
  background:var(--pp-white); border:1px solid var(--pp-chalk-200);
  border-radius:var(--pp-radius); box-shadow:var(--pp-shadow-1); padding:24px;
}
.is-style-pp-card > *:first-child{ margin-top:0; }
.is-style-pp-card > *:last-child{ margin-bottom:0; }
.is-style-pp-sunken{ background:var(--pp-chalk-100); border-radius:var(--pp-radius); padding:24px; }
.is-style-pp-panel-dark{
  background:var(--pp-spruce-800); color:var(--pp-chalk-50);
  border-radius:var(--pp-radius); padding:32px;
}
.is-style-pp-panel-dark :is(h1,h2,h3,h4,p){ color:var(--pp-chalk-50); }
.is-style-pp-panel-dark a{ color:var(--pp-chalk-50); }
.is-style-pp-panel-dark .is-style-pp-caption{ color:var(--pp-spruce-300); }

/* Listen */
.is-style-pp-checks,.is-style-pp-nos,.is-style-pp-steps,.is-style-pp-facts{ list-style:none; padding-left:0; }
.is-style-pp-checks li,.is-style-pp-nos li,.is-style-pp-steps li{
  position:relative; padding-left:40px; margin-bottom:14px;
}
.is-style-pp-checks li::before,.is-style-pp-nos li::before{
  content:""; position:absolute; left:0; top:.25em; width:24px; height:24px; border-radius:999px;
  background:var(--pp-success-50) center/12px 12px no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F6B4C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.is-style-pp-nos li::before{
  background-color:var(--pp-alert-50);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239B3226' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
}
.is-style-pp-steps{ counter-reset:pp-step; }
.is-style-pp-steps li{ padding-left:60px; margin-bottom:20px; }
.is-style-pp-steps li::before{
  counter-increment:pp-step; content:counter(pp-step);
  position:absolute; left:0; top:-2px; width:44px; height:44px; border-radius:999px;
  background:var(--pp-spruce-50); color:var(--pp-spruce-700);
  font-family:"Source Serif 4",Georgia,serif; font-size:1.25rem; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.is-style-pp-facts li{
  display:flex; justify-content:space-between; gap:16px;
  padding:12px 0; border-bottom:1px solid var(--pp-chalk-200); color:var(--pp-slate-600);
}
.is-style-pp-facts li:last-child{ border-bottom:0; }
.is-style-pp-facts strong{ color:var(--pp-ink-900); text-align:right; }

/* Bilder */
.is-style-pp-figure img{ border-radius:var(--pp-radius-media); }
.wp-block-image figcaption{ font-size:1rem; color:var(--pp-slate-600); }

/* Sticky-Spalte (Kursseiten, Preise) */
@media (min-width:782px){
  .is-style-pp-sticky{ position:sticky; top:112px; align-self:flex-start; }
}

/* Buttons */
.wp-block-button__link{ min-height:48px; display:inline-flex; align-items:center; justify-content:center; transition:background-color 120ms var(--pp-ease); }
.wp-block-button.is-style-outline .wp-block-button__link{
  background:var(--pp-white); color:var(--pp-ink-900); border:1px solid var(--pp-chalk-300);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{ background:var(--pp-spruce-50); border-color:var(--pp-spruce-700); }
.wp-block-button__link:active{ transform:scale(.99); }

/* ---------- Kontakt-Band ---------- */
.pp-cta{ background:var(--pp-spruce-800); }
.pp-cta :is(h1,h2,h3,p){ color:var(--pp-chalk-50); }
.pp-cta .pp-cta__text{ color:#C5D6D2; }
.pp-cta .wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent; color:var(--pp-chalk-50); border:2px solid #C5D6D2;
}

/* ---------- Fussbereich ---------- */
.pp-footer{ background:var(--pp-ink-900); color:var(--pp-chalk-50); }
.pp-footer :is(h1,h2,h3,h4){ color:var(--pp-chalk-50); }
.pp-footer p,.pp-footer li{ color:var(--pp-spruce-300); }
.pp-footer a{ color:var(--pp-chalk-50); text-decoration:none; }
.pp-footer a:hover{ text-decoration:underline; }
.pp-footer .wp-block-site-title a{ color:var(--pp-chalk-50); }
.pp-footer h4{ font-family:"Source Sans 3",sans-serif; font-size:.875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--pp-spruce-300); }
.pp-footer ul{ list-style:none; padding-left:0; }
.pp-footer li{ margin-bottom:12px; }
.pp-footer__meta{ border-top:1px solid rgba(247,249,250,.15); padding-top:24px; font-size:1rem; }

/* ---------- Kontaktformular ---------- */
.pp-form{ display:grid; gap:20px; }
.pp-form__field{ display:grid; gap:8px; }
.pp-form label{ font-weight:600; color:var(--pp-ink-900); }
.pp-form .pp-form__hint{ font-size:1rem; color:var(--pp-slate-600); }
.pp-form input[type=text],.pp-form input[type=email],.pp-form input[type=tel],.pp-form select,.pp-form textarea{
  width:100%; box-sizing:border-box; min-height:48px; padding:12px 14px;
  font-family:inherit; font-size:1.125rem; color:var(--pp-ink-900);
  background:var(--pp-white); border:1px solid var(--pp-slate-500); border-radius:10px;
}
.pp-form textarea{ min-height:140px; resize:vertical; }
.pp-form__check{ display:flex; gap:12px; align-items:flex-start; }
.pp-form__check input{ margin-top:6px; width:20px; height:20px; }
.pp-form button{
  min-height:56px; padding:0 28px; border:0; border-radius:10px;
  background:var(--pp-lake-700); color:var(--pp-white);
  font-family:inherit; font-size:1.125rem; font-weight:600; cursor:pointer;
  transition:background-color 120ms var(--pp-ease);
}
.pp-form button:hover{ background:var(--pp-lake-800); }
.pp-form__hp{ position:absolute; left:-9999px; }
.pp-notice{ border-radius:var(--pp-radius); padding:20px 24px; margin-bottom:24px; }
.pp-notice h3{ margin:0 0 6px; font-size:1.25rem; }
.pp-notice p{ margin:0; }
.pp-notice--ok{ background:var(--pp-success-50); border:1px solid #BFD9CC; }
.pp-notice--error{ background:var(--pp-alert-50); border:1px solid #E4C1BB; }
.pp-notice--error li{ color:var(--pp-alert-700); }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
