/*
Theme Name: 44one
Theme URI: https://44one.de
Author: Robert Müller
Description: Eigenständiges Theme für 44one.de — Fotografie & Reise. Gebaut für die CPTs aus "44one Slim" (trip, service, portfolio) plus Standard-Beiträge/Seiten. Fokus: SEO/GEO/AIO, Responsive, Barrierefreiheit (WCAG 2.1 AA angestrebt).
Version: 1.9.2
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: foss
*/

/* ---------- Custom Properties ---------- */
:root{
  --gap: 1.5rem;
  --max: 1200px;
  --bg: #fff;
  --fg: #2b2b2b;
  --fg-muted: #5a5a5a;
  --accent: #B8860B;
  --border: #e5e2dc;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-heading: Georgia, "Times New Roman", serif;
  --radius: 8px;
  --focus-ring: 3px solid var(--accent);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
img,picture,svg,video{max-width:100%;height:auto;display:block;}
html{scroll-behavior:smooth;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
body{
  font-family:var(--font-body);
  line-height:1.65;
  color:var(--fg);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:1.25;margin-bottom:.6em;}
h1{font-size:var(--h1-size, clamp(1.8rem,4vw,2.75rem));font-family:var(--h1-font, var(--font-heading));text-align:var(--h1-align, left);}
h2{font-size:var(--h2-size, clamp(1.4rem,3vw,2rem));font-family:var(--h2-font, var(--font-heading));text-align:var(--h2-align, left);}
h3{font-size:var(--h3-size, clamp(1.15rem,2vw,1.5rem));font-family:var(--h3-font, var(--font-heading));text-align:var(--h3-align, left);}
h4{font-size:var(--h4-size, 1.15rem);font-family:var(--h4-font, var(--font-heading));text-align:var(--h4-align, left);}
h5{font-size:var(--h5-size, 1rem);font-family:var(--h5-font, var(--font-heading));text-align:var(--h5-align, left);}
h6{font-size:var(--h6-size, .9rem);font-family:var(--h6-font, var(--font-heading));text-align:var(--h6-align, left);}
p{margin-bottom:1.2em;max-width:70ch;}
a{color:var(--accent);}
ul,ol{padding-left:1.4em;margin-bottom:1.2em;}

/* ---------- Barrierefreiheit: sichtbarer Fokus, Skip-Link, sr-only ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,
select:focus-visible,[tabindex]:focus-visible{
  outline:var(--focus-ring);
  outline-offset:2px;
}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;top:-100px;left:0;background:var(--fg);color:#fff;
  padding:.75rem 1.25rem;z-index:10000;transition:top .2s ease;
}
.skip-link:focus{top:0;}

/* ---------- Layout ---------- */
.site-header,.site-footer{max-width:var(--max);margin:0 auto;padding:1rem clamp(1rem,4vw,2rem);}
.site-header{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  border-bottom:1px solid var(--border);
  position:relative;z-index:100; /* eigener Stacking-Context: liegt garantiert über Bildern/Karten mit transform weiter unten im Dokument */
  background:var(--bg);
}
.site-branding a{color:var(--fg);text-decoration:none;font-family:var(--font-heading);font-size:1.4rem;font-weight:700;}
.container{max-width:var(--max);margin:0 auto;padding:0 clamp(1rem,4vw,2rem);}
main{display:block;}

/* ---------- Primäres Menü (Tastatur-/Screenreader-zugänglich) ---------- */
.main-navigation{position:relative;z-index:100;}
.main-navigation ul{list-style:none;display:flex;gap:1.5rem;padding:0;margin:0;flex-wrap:wrap;}
.main-navigation a{text-decoration:none;color:var(--fg);font-weight:600;}
.main-navigation a:hover,.main-navigation a:focus-visible{color:var(--accent);}
.main-navigation .sub-menu{display:none;flex-direction:column;position:absolute;z-index:101;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem 1rem;gap:.5rem;box-shadow:0 4px 16px rgba(0,0,0,.08);}
.main-navigation li:hover > .sub-menu,
.main-navigation li:focus-within > .sub-menu,
.main-navigation .sub-menu.is-open{display:flex;}
.menu-toggle{display:none;background:none;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem 1rem;font-size:1rem;cursor:pointer;}

@media(max-width:820px){
  .menu-toggle{display:inline-block;}
  .main-navigation ul{display:none;flex-direction:column;width:100%;gap:.75rem;padding:1rem 0;}
  .main-navigation.is-open ul{display:flex;}
  .main-navigation .sub-menu{position:static;box-shadow:none;border:0;padding-left:1rem;}
}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs{font-size:.85rem;color:var(--fg-muted);margin:1rem 0;}
.breadcrumbs a{color:var(--fg-muted);}
.breadcrumbs a:hover,.breadcrumbs a:focus-visible{color:var(--accent);}
.breadcrumbs [aria-hidden]{margin:0 .4em;}

/* ---------- Kurzfassung / TL;DR (gut für AIO/GEO: Antwort-Engines zitieren komprimierte Kernaussagen) ---------- */
.tldr-box{
  background:#faf8f3;border:1px solid var(--border);border-left:4px solid var(--accent);
  border-radius:var(--radius);padding:1.25rem 1.5rem;margin:1.5rem 0 2rem;
}
.tldr-box h2{font-size:1rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;}

/* ---------- Karten / Grids (Archive, verwandte Inhalte) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--gap);margin:2rem 0;}
.card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease;}
.card:hover,.card:focus-within{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.card a{text-decoration:none;color:inherit;display:block;}
.card__image{width:100%;aspect-ratio:15 / 8;object-fit:cover;} /* 20% niedriger als die ursprüngliche 600×400-Bildgröße (600×320) */
.card__body{padding:1rem 1.25rem;}
.card__title{font-size:1.1rem;margin-bottom:.4rem;}
.card__excerpt{font-size:.9rem;color:var(--fg-muted);margin-bottom:0;}

/* ---------- Hero (Trip) ---------- */
.hero{position:relative;min-height:50vh;background-size:cover;background-position:center;display:flex;align-items:flex-end;color:#fff;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,0) 60%);}
.hero__content{position:relative;z-index:1;padding:2rem clamp(1rem,4vw,2rem);max-width:var(--max);margin:0 auto;width:100%;}
.hero h1{color:#fff;}

/* ---------- Service / Portfolio Content ---------- */
.entry-content{max-width:75ch;margin:0 auto;padding:2rem clamp(1rem,4vw,2rem);}
.entry-content img{border-radius:var(--radius);}

/* Blog-Beiträge (post_type "post"): breiter und am linken Rand des
   Haupt-Containers ausgerichtet statt zentriert-schmal, angelehnt an
   den bisherigen 44one.de-Standard (siehe /aesthetik_des_unvollkommenen/
   als Referenz). header.php/single.php wrappen Titel+Content in
   .container — deshalb hier nur noch vertikales Padding, das
   horizontale übernimmt bereits der Container. Nur post_type "post"
   betroffen — Trip/Service/Portfolio/Seiten unverändert.
*/
.single-post .entry-header{max-width:900px;margin:0;padding:1.5rem 0 0;}
.single-post .entry-content{max-width:900px;margin:0;padding:.5rem 0 2rem;}
/* Absätze und die FAQ-Box haben sitewide eine eigene max-width
   (p: 70ch, .faq-block: 75ch + zentriert) — die würde die
   900px-Verbreiterung oben sonst wirkungslos machen, weil der Text
   selbst weiterhin schmal bliebe. Für Blog-Beiträge auf volle
   Content-Breite angleichen. */
.single-post .entry-content p{max-width:none;}
.single-post .faq-block{max-width:none;margin:2rem 0;}
/* Absicherung gegen ungewollten Einzug: Falls ein Beitrag im
   Block-Editor mit einer Gruppe/Spalte verfasst wurde, bringen diese
   WordPress-Kernblöcke standardmäßig eigenes Padding mit — das würde
   den Content gegenüber Titel/Container nach rechts verschoben
   wirken lassen. Für Blog-Beiträge neutralisiert. */
.single-post .entry-content .wp-block-group,
.single-post .entry-content .wp-block-column,
.single-post .entry-content .wp-block-columns{padding-left:0;margin-left:0;}
.entry-header{max-width:var(--max);margin:0 auto;padding:2rem clamp(1rem,4vw,2rem) 0;}
.entry-meta{color:var(--fg-muted);font-size:.85rem;}
.archive-description{color:var(--fg-muted);max-width:65ch;margin-top:.5rem;}

/* ---------- Related / Themenfeld-Box (siehe Plugin includes/output.php) ---------- */
.related-themenfeld{max-width:var(--max);margin:3rem auto;padding:0 clamp(1rem,4vw,2rem);}
.related-posts{max-width:var(--max);margin:3rem auto;padding:0 clamp(1rem,4vw,2rem);}

/* ---------- FAQ (schema-fähig, gut für AIO) ---------- */
.faq-block{max-width:75ch;margin:2rem auto;}
.faq-item{border-bottom:1px solid var(--border);padding:1rem 0;}
.faq-item summary{cursor:pointer;font-weight:700;}
.faq-item summary:focus-visible{outline:var(--focus-ring);}

/* ---------- Schritte-Box (Widget) ---------- */
.steps-box{list-style:none;counter-reset:foss-step;max-width:75ch;margin:2rem auto;padding:0;}
.steps-box__item{counter-increment:foss-step;position:relative;padding:0 0 1.5rem 3rem;border-left:2px solid var(--border);margin-left:.9rem;}
.steps-box__item:last-child{border-left-color:transparent;padding-bottom:0;}
.steps-box__item::before{
  content:counter(foss-step);position:absolute;left:-1rem;top:0;
  width:2rem;height:2rem;border-radius:50%;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;
}
.steps-box__title{font-weight:700;display:block;margin-bottom:.25rem;}
.steps-box__text{margin-bottom:0;color:var(--fg-muted);}

/* ---------- Preise ---------- */
.pricing{margin:3rem 0;}
.pricing-grid{
  list-style:none;padding:0;margin:1.5rem 0 0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;
  align-items:stretch;
}
.pricing-card{
  position:relative;display:flex;flex-direction:column;gap:.75rem;
  border:1px solid var(--border);border-radius:var(--radius);
  padding:1.75rem 1.5rem;background:#fff;
  transition:transform .25s ease,box-shadow .25s ease;
}
.pricing-card:hover,.pricing-card:focus-within{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.08);}
.pricing-card--highlighted{border-color:var(--accent);border-width:2px;box-shadow:0 8px 24px rgba(184,134,11,.12);}
.pricing-card__badge{
  position:absolute;top:-.75rem;left:1.5rem;background:var(--accent);color:#fff;
  font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  padding:.3rem .75rem;border-radius:999px;
}
.pricing-card__title{font-size:1.15rem;margin-bottom:0;}
.pricing-card__price{display:flex;align-items:baseline;gap:.4rem;margin-bottom:0;}
.pricing-card__amount{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--fg);}
.pricing-card__unit{font-size:.85rem;color:var(--fg-muted);}
.pricing-card__features{list-style:none;padding:0;margin:0 0 .5rem;flex-grow:1;}
.pricing-card__features li{padding:.35rem 0 .35rem 1.6rem;position:relative;border-bottom:1px solid var(--border);font-size:.95rem;}
.pricing-card__features li:last-child{border-bottom:0;}
.pricing-card__features li::before{
  content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700;
}
.pricing-card__cta{
  display:inline-block;text-align:center;text-decoration:none;
  background:var(--accent);color:#fff;border-radius:var(--radius);
  padding:.75rem 1.25rem;font-weight:600;margin-top:auto;
}
.pricing-card__cta:hover,.pricing-card__cta:focus-visible{background:var(--fg);color:#fff;}

/* ---------- Widget-Area am Beitragsende ---------- */
.widget-area-content-end{margin:3rem auto;}
.widget-area-content-end .widget{margin-bottom:2.5rem;}
.widget-area-content-end .widget-title{margin-bottom:1rem;}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--border);color:var(--fg-muted);font-size:.9rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;}

/* ---------- Formulare (Suche, Kommentare) ---------- */
input[type="text"],input[type="email"],input[type="url"],input[type="search"],textarea{
  width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);font:inherit;
}
label{display:block;font-weight:600;margin-bottom:.3rem;}
button,input[type="submit"]{
  background:var(--fg);color:#fff;border:0;border-radius:var(--radius);padding:.7rem 1.4rem;font:inherit;cursor:pointer;
}
button:hover,input[type="submit"]:hover{background:var(--accent);}

/* ---------- Utility ---------- */
.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
