/*
Theme Name: Pro Hominibus
Theme URI: https://fundacjackw.pl/
Author: Fundacja Pro Hominibus
Description: Lekki motyw blokowy dla Fundacji Pro Hominibus. Jasny, elegancki, przygotowany pod Gutenberg/Site Editor.
Version: 2.5.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: pro-hominibus
*/

:root {
  --ph-cream: #f7f3ea;
  --ph-white: #fffdf9;
  --ph-navy: #14263b;
  --ph-gold: #b8873c;
  --ph-warm: #e8dcc8;
  --ph-ink: #202733;
  --ph-muted: #68717d;
  --ph-border: rgba(20, 38, 59, 0.12);
  --ph-radius: 22px;
  --ph-shadow: 0 20px 55px rgba(20, 38, 59, 0.08);
}

html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a { text-underline-offset: 0.18em; }

.ph-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--ph-border);
  backdrop-filter: blur(14px);
  background: rgba(255, 253, 249, 0.94);
}

.admin-bar .ph-site-header { top: 32px; }

.ph-header-logo img {
  width: 285px;
  max-width: min(285px, 32vw);
  height: auto;
  display: block;
}


.ph-hero {
  overflow: hidden;
  position: relative;
}

.ph-hero::after {
  content: "";
  position: absolute;
  width: 34rem;
  height: 34rem;
  right: -10rem;
  top: -10rem;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(184, 135, 60, 0.16), rgba(184, 135, 60, 0));
  pointer-events: none;
}

.ph-eyebrow {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ph-gold);
}

.ph-card {
  height: 100%;
  border: 1px solid var(--ph-border);
  border-radius: var(--ph-radius);
  background: var(--ph-white);
  box-shadow: 0 12px 35px rgba(20, 38, 59, 0.045);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.ph-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--ph-shadow);
  border-color: rgba(184, 135, 60, 0.28);
}

.ph-icon {
  width: 3.25rem;
  height: 3.25rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(184, 135, 60, 0.12);
  color: var(--ph-navy);
  font-weight: 700;
  font-family: Georgia, "Times New Roman", serif;
}

.ph-project-feature {
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--ph-shadow);
}

.ph-image-placeholder {
  min-height: 25rem;
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(20, 38, 59, 0.9), rgba(184, 135, 60, 0.52)),
    linear-gradient(45deg, #d8c8ab, #f4ede2);
  position: relative;
  overflow: hidden;
}

.ph-image-placeholder::before,
.ph-image-placeholder::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35);
}
.ph-image-placeholder::before { width: 22rem; height: 22rem; right: -4rem; top: -4rem; }
.ph-image-placeholder::after { width: 13rem; height: 13rem; left: -3rem; bottom: -3rem; }

.ph-section-soft { background: #fbf8f2; }
.ph-section-navy { background: var(--ph-navy); color: #fff; }
.ph-section-navy a { color: #fff; }

.ph-quote {
  border-left: 3px solid var(--ph-gold);
  padding-left: 1.5rem;
}

.ph-card .wp-block-post-featured-image img,
.ph-news-card .wp-block-post-featured-image img {
  border-radius: 18px 18px 0 0;
}

.ph-footer {
  border-top: 1px solid rgba(255,255,255,.12);
}

.wp-block-button.is-style-outline > .wp-block-button__link {
  border-width: 1px;
}

@media (max-width: 782px) {
  .admin-bar .ph-site-header { top: 46px; }
  .ph-header-logo img { width: 220px; max-width: 68vw; }
  .ph-image-placeholder { min-height: 18rem; }
  .ph-desktop-only { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ph-card { transition: none; }
}

/* v0.2 — dopracowanie kierunku zgodnego z wybraną makietą */
.ph-hero-grid { position: relative; z-index: 1; }
.ph-hero-image img,
.ph-about-image img,
.ph-project-image img {
  width: 100%;
  object-fit: cover;
  display: block;
}
.ph-hero-image img {
  min-height: 27rem;
  border-radius: 30px;
  box-shadow: var(--ph-shadow);
}
.ph-about-image img {
  min-height: 21rem;
  border-radius: 26px;
  box-shadow: 0 16px 42px rgba(20,38,59,.08);
}
.ph-project-light {
  background: #fbf8f2;
  border: 1px solid var(--ph-border);
}
.ph-project-image,
.ph-project-image img { height: 100%; }
.ph-project-image img {
  min-height: 23rem;
  border-radius: 28px 0 0 28px;
}
.ph-values-mini {
  padding-left: clamp(0rem,2vw,2rem);
  border-left: 1px solid rgba(184,135,60,.25);
}
.ph-values-mini p { margin: 0 0 1.4rem; }
.ph-values-mini strong {
  color: var(--ph-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.12rem;
}
.ph-values-mini span { color: var(--ph-muted); font-size: .94rem; }

@media (max-width: 782px) {
  .ph-hero-image img { min-height: 18rem; border-radius: 22px; }
  .ph-about-image img { min-height: 16rem; }
  .ph-values-mini { padding-left: 0; border-left: 0; }
  .ph-project-image img { min-height: 16rem; border-radius: 24px 24px 0 0; }
}


/* v0.4 — większe nagłówki, nowe karty wartości i poprawiona stopka */
.ph-value-card{
  height: 100%;
  padding: 1.65rem;
  border: 1px solid var(--ph-border);
  border-radius: 20px;
  background: var(--ph-white);
  box-shadow: 0 10px 30px rgba(20,38,59,.04);
}
.ph-footer-logo-box {
  display: inline-block;
  background: var(--ph-white);
  border-radius: 14px;
  padding: 0.7rem 0.85rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.ph-footer-logo-box .wp-block-site-logo img {
  width: 220px;
  height: auto;
  display: block;
}
.ph-footer p,
.ph-footer li,
.ph-footer a {
  font-size: 1.08rem;
}
.ph-footer .has-small-font-size {
  font-size: 1.02rem !important;
}
.ph-footer .wp-block-heading.has-large-font-size {
  font-size: 1.7rem !important;
}
.ph-footer .wp-block-page-list {
  line-height: 1.8;
}
@media (max-width: 782px) {
  .ph-footer-logo-box .wp-block-site-logo img { width: 190px; }
}


/* v0.5 — większa typografia w górnym pasku nawigacyjnym */
.ph-site-header .wp-block-navigation-item__content {
  font-size: 1.08rem;
  line-height: 1.35;
}
.ph-site-header .wp-block-button__link {
  font-size: 1.02rem;
  padding-top: 0.82rem;
  padding-bottom: 0.82rem;
}
@media (max-width: 1000px) and (min-width: 783px) {
  .ph-site-header .wp-block-navigation-item__content { font-size: 1rem; }
}


/* v0.6 — większe logo i menu w górnym pasku */
.ph-site-header {
  min-height: 96px;
}
.ph-site-header .alignwide {
  width: 100%;
}
.ph-site-header .wp-block-navigation-item__content {
  font-size: 1.18rem;
  line-height: 1.32;
}
.ph-site-header .wp-block-navigation__container {
  gap: clamp(0.75rem, 1.2vw, 1.25rem);
}
.ph-site-header .wp-block-button__link {
  font-size: 1.08rem;
  padding: 0.9rem 1.55rem;
}
@media (max-width: 1120px) and (min-width: 783px) {
  .ph-header-logo img { width: 245px; max-width: 28vw; }
  .ph-site-header .wp-block-navigation-item__content { font-size: 1.05rem; }
  .ph-site-header .wp-block-navigation__container { gap: 0.55rem; }
  .ph-site-header .wp-block-button__link { font-size: 1rem; padding: 0.78rem 1.2rem; }
}
@media (max-width: 782px) {
  .ph-site-header { min-height: 74px; }
}


/* v0.7 — mocniejszy nagłówek, spokojniejsze hasło hero */
.ph-site-header {
  min-height: 110px;
}
.ph-header-logo img {
  width: 335px;
  max-width: min(335px, 34vw);
}
.ph-site-header .wp-block-navigation-item__content {
  font-size: 1.28rem;
  line-height: 1.3;
}
.ph-site-header .wp-block-navigation__container {
  gap: clamp(0.85rem, 1.25vw, 1.35rem);
}
.ph-site-header .wp-block-button__link {
  font-size: 1.14rem;
  padding: 0.94rem 1.75rem;
}
.ph-hero h1.has-xx-large-font-size {
  font-size: clamp(3.1rem, 5.2vw, 4.65rem) !important;
  line-height: 1.08;
}
@media (max-width: 1200px) and (min-width: 783px) {
  .ph-header-logo img { width: 285px; max-width: 28vw; }
  .ph-site-header .wp-block-navigation-item__content { font-size: 1.12rem; }
  .ph-site-header .wp-block-navigation__container { gap: 0.65rem; }
  .ph-site-header .wp-block-button__link { font-size: 1.04rem; padding: 0.84rem 1.3rem; }
}
@media (max-width: 782px) {
  .ph-site-header { min-height: 78px; }
  .ph-header-logo img { width: 230px; max-width: 70vw; }
  .ph-hero h1.has-xx-large-font-size { font-size: clamp(2.75rem, 13vw, 3.3rem) !important; }
}


/* v0.8 — ostrzejsze logo w nagłówku; rozmiary bez zmian */


/* v0.9 — wektorowe logo SVG: ostre niezależnie od skali */
.ph-brand-link{
  display:inline-block;
  line-height:0;
  text-decoration:none;
}
.ph-logo-svg{
  display:block;
  width:100%;
  aspect-ratio:800 / 323;
  background:url("assets/images/pro-hominibus-logo.png") center / contain no-repeat;
}
.ph-header-vector-logo{
  width:335px;
  max-width:min(335px,34vw);
}
.ph-footer-vector-logo{
  width:220px;
  max-width:100%;
}
.ph-footer-logo-box .ph-logo-svg{
  width:100%;
}
@media (max-width:1200px) and (min-width:783px){
  .ph-header-vector-logo{width:285px;max-width:28vw;}
}
@media (max-width:782px){
  .ph-header-vector-logo{width:230px;max-width:70vw;}
  .ph-footer-vector-logo{width:190px;}
}


/* v1.0 — większe logo i menu; szerszy nagłówek bez łamania tekstu */
.ph-site-header {
  min-height: 124px;
}
.ph-site-header .alignwide {
  max-width: 1450px !important;
  width: 100%;
}
.ph-header-vector-logo {
  width: 380px;
  max-width: min(380px, 36vw);
}
.ph-site-header .wp-block-navigation-item__content {
  font-size: 1.36rem;
  line-height: 1.28;
  white-space: nowrap;
}
.ph-site-header .wp-block-navigation__container {
  gap: clamp(0.8rem, 1.15vw, 1.3rem);
  flex-wrap: nowrap;
}
.ph-site-header .wp-block-button__link {
  font-size: 1.22rem;
  padding: 1rem 1.9rem;
  white-space: nowrap;
}
@media (max-width: 1350px) and (min-width: 783px) {
  .ph-site-header { min-height: 114px; }
  .ph-header-vector-logo { width: 330px; max-width: 30vw; }
  .ph-site-header .wp-block-navigation-item__content { font-size: 1.18rem; }
  .ph-site-header .wp-block-navigation__container { gap: 0.58rem; }
  .ph-site-header .wp-block-button__link { font-size: 1.08rem; padding: 0.88rem 1.35rem; }
}
@media (max-width: 782px) {
  .ph-site-header { min-height: 78px; }
  .ph-header-vector-logo { width: 230px; max-width: 70vw; }
}

/* v1.1 — większy tagline wyłącznie w logo nagłówka */
.ph-header-vector-logo .ph-logo-svg {
  background-image: url("assets/images/pro-hominibus-logo.png");
}


/* v1.3 — czytelny hover w nawigacji i subtelna reakcja przycisków */
.ph-site-header .wp-block-navigation-item__content {
  position: relative;
  display: inline-block;
  padding-bottom: 0.22rem;
  transition: color 220ms ease;
}
.ph-site-header .wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.12rem;
  height: 2px;
  border-radius: 2px;
  background: var(--ph-gold);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 240ms ease;
}

/* Aktywna podstrona pozostaje zaznaczona. */
.ph-site-header .current-menu-item > .wp-block-navigation-item__content,
.ph-site-header .current-menu-ancestor > .wp-block-navigation-item__content,
.ph-site-header .current_page_item > .wp-block-navigation-item__content {
  color: var(--ph-gold);
}
.ph-site-header .current-menu-item > .wp-block-navigation-item__content::after,
.ph-site-header .current-menu-ancestor > .wp-block-navigation-item__content::after,
.ph-site-header .current_page_item > .wp-block-navigation-item__content::after {
  transform: scaleX(1);
}

.wp-block-button__link {
  transition: transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease, border-color 220ms ease, color 220ms ease;
}

/* Linki tekstowe w stopce reagują podobnie, ale delikatniej. */
.ph-footer a:not(.wp-block-button__link) {
  transition: color 200ms ease, text-decoration-color 200ms ease;
  text-decoration-color: transparent;
}

@media (hover: hover) and (pointer: fine) {
  .ph-site-header .wp-block-navigation-item__content:hover,
  .ph-site-header .wp-block-navigation-item__content:focus-visible {
    color: var(--ph-gold);
  }
  .ph-site-header .wp-block-navigation-item__content:hover::after,
  .ph-site-header .wp-block-navigation-item__content:focus-visible::after {
    transform: scaleX(1);
  }

  .wp-block-button__link:hover,
  .wp-block-button__link:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(20, 38, 59, 0.14);
  }
  .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
  .wp-block-button:not(.is-style-outline) > .wp-block-button__link:focus-visible {
    background: #9f742f !important;
    border-color: #9f742f !important;
  }
  .wp-block-button.is-style-outline > .wp-block-button__link:hover,
  .wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
    color: var(--ph-gold) !important;
    border-color: var(--ph-gold) !important;
    background: rgba(184, 135, 60, 0.05) !important;
  }

  .ph-footer a:not(.wp-block-button__link):hover,
  .ph-footer a:not(.wp-block-button__link):focus-visible {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: var(--ph-gold);
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.28em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ph-site-header .wp-block-navigation-item__content,
  .ph-site-header .wp-block-navigation-item__content::after,
  .wp-block-button__link,
  .ph-footer a:not(.wp-block-button__link) {
    transition: none;
  }
}


/* v1.4 — wszystkie pozycje menu w jednym wierszu */
.ph-site-header .alignwide {
  max-width: 1600px !important;
  width: 100%;
  flex-wrap: nowrap !important;
  column-gap: 0.9rem;
}
.ph-site-header .alignwide > .wp-block-group:first-child,
.ph-site-header .alignwide > .wp-block-group:last-child,
.ph-site-header .wp-block-buttons {
  flex-shrink: 0;
}
.ph-site-header .alignwide > .wp-block-group:last-child {
  min-width: 0;
  flex-wrap: nowrap !important;
  column-gap: 0.9rem;
}
.ph-site-header .wp-block-navigation {
  min-width: 0;
  flex: 1 1 auto;
}
.ph-site-header .wp-block-navigation__responsive-container-content,
.ph-site-header .wp-block-navigation__container {
  flex-wrap: nowrap !important;
  white-space: nowrap;
}
.ph-site-header .wp-block-navigation__container {
  gap: clamp(0.55rem, 0.8vw, 0.95rem);
}
.ph-site-header .wp-block-navigation-item {
  flex: 0 0 auto;
}
@media (max-width: 1350px) and (min-width: 783px) {
  .ph-site-header .alignwide { column-gap: 0.55rem; }
  .ph-site-header .alignwide > .wp-block-group:last-child { column-gap: 0.55rem; }
  .ph-header-vector-logo { width: 320px; max-width: 28vw; }
  .ph-site-header .wp-block-navigation__container { gap: 0.5rem; }
  .ph-site-header .wp-block-button__link { padding-left: 1.15rem; padding-right: 1.15rem; }
}


/* v2.0 — wspólne style podstron */
.ph-page-hero {
  background: var(--ph-cream);
  border-bottom: 1px solid var(--ph-border);
}
.ph-page-hero .wp-block-group.alignwide {
  max-width: 1120px;
}
.ph-page-lead {
  max-width: 850px;
  color: var(--ph-muted);
  font-size: clamp(1.12rem, 1.6vw, 1.35rem);
}
.ph-breadcrumb {
  color: var(--ph-gold);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.ph-info-grid .wp-block-column,
.ph-info-card {
  height: 100%;
}
.ph-info-card {
  padding: 1.8rem;
  border: 1px solid var(--ph-border);
  border-radius: 22px;
  background: var(--ph-white);
  box-shadow: 0 10px 30px rgba(20,38,59,.04);
}
.ph-info-card h2,
.ph-info-card h3 { margin-top: .25rem; }
.ph-info-card p:last-child { margin-bottom: 0; }
.ph-callout {
  border-left: 3px solid var(--ph-gold);
  background: #fbf8f2;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: 0 22px 22px 0;
}
.ph-status {
  display: inline-block;
  padding: .38rem .7rem;
  border-radius: 999px;
  background: rgba(184,135,60,.12);
  color: var(--ph-gold);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ph-contact-card {
  padding: 2rem;
  border-radius: 24px;
  border: 1px solid var(--ph-border);
  background: var(--ph-white);
}
.ph-contact-card a { font-weight: 700; }
.ph-project-hero {
  border-radius: 30px;
  overflow: hidden;
  border: 1px solid var(--ph-border);
  background: #fbf8f2;
  box-shadow: var(--ph-shadow);
}
.ph-project-hero .wp-block-post-featured-image img { border-radius: 0; }
.ph-project-archive-intro { max-width: 880px; }
.ph-empty-state {
  padding: 2rem;
  border-radius: 20px;
  background: var(--ph-cream);
  border: 1px solid var(--ph-border);
}
.ph-footer .wp-block-page-list { display:none; }
.ph-footer-nav a { display:block; margin:.35rem 0; }
@media (max-width: 782px) {
  .ph-page-hero { padding-top: 3rem !important; padding-bottom: 3rem !important; }
  .ph-info-card, .ph-contact-card { padding: 1.4rem; }
}


/* v2.3 — jeden, spójny wariant logo na całej stronie */
.ph-header-vector-logo {
  width: 315px;
  max-width: min(315px, 30vw);
}
.ph-footer-vector-logo {
  width: 275px;
  max-width: 100%;
}
.ph-footer-logo-box {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  background: var(--ph-white);
  border-radius: 18px;
  padding: 0.75rem 0.9rem;
}
@media (max-width: 1350px) and (min-width: 783px) {
  .ph-header-vector-logo { width: 275px; max-width: 27vw; }
}
@media (max-width: 782px) {
  .ph-header-vector-logo { width: 230px; max-width: 72vw; }
  .ph-footer-vector-logo { width: 230px; }
}
