/* Project editorial: photographs first, precise facts and unabridged source information. */
.project-page { background: #fdfbf7; }
.project-page .pj-main { padding-top: 76px; }
.project-page .pj-hero { position:relative; padding:0; background:#08362b; color:#fff; }
.project-page .pj-hero-grid { position:relative; min-height:min(740px,82svh); display:flex; align-items:flex-end; padding-block:200px 64px; }
.project-page .pj-hero-media { position:absolute; inset:0; width:100%; height:100%; box-shadow:none; z-index:0; }
.project-page .pj-hero-media::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,26,21,.78),rgba(3,26,21,.1)),linear-gradient(0deg,rgba(3,26,21,.5),transparent 60%); }
.project-page .pj-hero-grid { max-width:none; width:100%; }
.project-page .pj-hero-content { position:relative; z-index:1; flex:none; width:min(760px,100%); margin-left:max(0px,calc((100vw - 1256px)/2 - 5vw)); }
.project-page .pj-hero-title { color:white; font-size:clamp(44px,5.5vw,80px); font-weight:400; line-height:1.05; letter-spacing:-.035em; overflow-wrap:anywhere; }
.project-page .pj-hero-badge { background:transparent; color:#fff; padding:0; letter-spacing:.12em; text-transform:uppercase; font-size:12px; }
.project-page .pj-hero-lead { color:rgba(255,255,255,.88); max-width:630px; font-size:17px; line-height:1.7; }
.project-page .pj-hero-btns .pj-btn-outline { color:white; border-color:rgba(255,255,255,.55); }
.project-page .pj-photo-open { position:absolute; right:5vw; top:32px; z-index:2; padding:14px 20px; min-height:48px; border:1px solid rgba(255,255,255,.55); background:rgba(3,26,21,.5); color:#fff; cursor:pointer; font:500 14px var(--font-body); }
.project-page .pj-hero-no-photo .pj-hero-grid { min-height:380px; padding-top:90px; }
/* Origin's only source photograph places the residence below a large sky. */
.project-page .pj-hero-origin .pj-hero-grid { min-height:600px; }
.project-page .pj-hero-origin .pj-hero-media img { object-position:center bottom; }
.project-page #pj-fact-dokonceni .pj-fact-val { font:500 16px/1.6 var(--font-body); }
.project-page .pj-fact-div { display:none; }
.project-page .pj-fact-lbl { font-size:11px; letter-spacing:.1em; margin-top:10px; }
.pj-section-nav { border-bottom:1px solid rgba(11,59,46,.12); }
.pj-section-nav .container { display:flex; gap:28px; overflow-x:auto; padding-block:8px; }
.pj-section-nav a { flex-shrink:0; padding:16px 0; font-size:14px; color:var(--color-primary); border-bottom:1px solid transparent; text-decoration:none; }
.pj-section-nav a:hover { border-color:var(--color-accent); }
.project-page .pj-section { padding:88px 0; scroll-margin-top:95px; }
.project-page .pj-section .section-title { font-size:clamp(32px,3.4vw,48px); font-weight:400; letter-spacing:-.025em; max-width:850px; }
.project-page .pj-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:32px; }
.project-page .pj-gal-thumb { width:100%; height:330px; min-height:0; background:#f0eee7; }
.project-page .pj-gal-thumb img { transition:transform .6s ease; }
.project-page .pj-gal-thumb:hover img { transform:scale(1.025); }
.project-page .pj-gal-thumb.is-floorplan img { object-fit:contain; padding:20px; }
.project-page .pj-gallery-note { font-size:13px; margin-top:18px; }
.project-page .pj-about-grid { grid-template-columns:minmax(0,1fr) 300px; gap:8vw; }
.project-page .pj-about-body { max-width:740px; }
.project-page .pj-about-body p { color:#344f45; line-height:1.9; font-size:17px; margin-bottom:1.6em; overflow-wrap:anywhere; }
.project-page .pj-about-meta { background:#0b3b2e; color:white; padding:30px; box-shadow:none; position:sticky; top:100px; }
.project-page .pj-about-meta dt { color:#cfddd6; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.project-page .pj-about-meta dd { color:white; font-size:16px; line-height:1.7; overflow-wrap:anywhere; }
.project-page .pj-meta-row { border-color:rgba(255,255,255,.16); display:block; }
.project-page .pj-amen-grid { display:grid; grid-template-columns:1fr; gap:36px; margin-top:40px; padding-top:32px; border-top:1px solid rgba(11,59,46,.15); }
.project-page .pj-amen-title { font-size:13px; letter-spacing:.06em; }
.project-page .pj-amen-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; }
.project-page .pj-amen-item { font-size:15px; line-height:1.7; align-items:flex-start; }
.project-page .pj-chips { display:grid; grid-template-columns:1fr; gap:0; }
.project-page .pj-chip { background:transparent; padding:14px 0; border:0; border-bottom:1px solid rgba(11,59,46,.1); white-space:normal; font-size:15px; line-height:1.7; }
.project-page .pj-empty { text-align:left; max-width:760px; border:0; border-left:3px solid var(--color-accent); padding:24px 32px; background:#f2eee5; margin-top:24px; }
.project-page .pj-side { box-shadow:none; }
.project-page #pj-plan .text-center { text-align:left; }
.project-page #pj-plan .section-text { margin-left:0!important; }
.project-page .pj-plan-wrapper { max-width:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:40px; gap:28px; }
.project-page .pj-plan-step { display:block; border-top:1px solid #a9b8ae; padding-top:22px; }
.project-page .pj-plan-num { background:transparent; margin:0 0 24px; width:auto; height:auto; justify-content:flex-start; font:400 38px var(--font-heading); color:#926b43; }
.project-page .pj-plan-card { padding:0; border:0; background:transparent; box-shadow:none; }
.project-page .pj-plan-faze { font:400 23px/1.3 var(--font-heading); }
.project-page .pj-plan-castka { font:400 16px/1.8 var(--font-body); overflow-wrap:anywhere; white-space:pre-line; }
.project-page .pj-plan-note { grid-column:1/-1; border-top:1px solid #a9b8ae; padding-top:20px; max-width:900px; font:400 14px/1.8 var(--font-body); color:#52665e; }
.project-page .pj-plan-note p { margin:6px 0 0; white-space:pre-line; }
.project-page .pj-plan-step.pj-plan-alternative { display:block; }
.project-page .pj-document-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.pj-document-group h4 { font:400 25px var(--font-heading); margin:0 0 16px; }
.project-page .pj-document-link { margin-top:10px; min-height:92px; padding:20px; align-items:center; }
.project-page .pj-document-link > span:first-child { min-width:0; overflow-wrap:anywhere; }
.project-page .pj-document-link > span:last-child { flex-shrink:0; font-size:13px; }
.project-page .pj-document-link strong { font-weight:500; line-height:1.5; display:block; }
.project-page .pj-document-link small { font-size:12px; }
.project-page .pj-map-box { box-shadow:none; margin-top:32px; }
.project-page :is(.pj-photo-open,.pj-section-nav a,.pj-gal-thumb):focus-visible { outline:2px solid var(--color-accent); outline-offset:5px; }
@media(max-width:900px) {
 .project-page .pj-about-grid { grid-template-columns:1fr; gap:36px; }
 .project-page .pj-about-meta { position:static; }
 .project-page .pj-plan-wrapper { grid-template-columns:1fr; }
 .project-page .pj-plan-step { display:grid; grid-template-columns:48px minmax(0,1fr); gap:16px; }
 .project-page .pj-document-list { grid-template-columns:1fr; }
}
@media(max-width:767px) {
 .project-page .pj-main { padding-top:64px; }
 .project-page .pj-hero-grid { min-height:650px; padding-top:150px; padding-bottom:40px; }
 .project-page .pj-hero-origin .pj-hero-grid { min-height:480px; padding-top:110px; }
 .project-page .pj-hero-origin .pj-hero-media img { transform:scale(1.8); transform-origin:center bottom; }
 .project-page .pj-hero-title { font-size:44px; }
 .project-page .pj-hero-content { margin:0; }
 .project-page .pj-hero-lead { font-size:15px; line-height:1.65; }
 .project-page .pj-hero-media::after { background:linear-gradient(0deg,rgba(3,26,21,.9),rgba(3,26,21,.18)); }
 .project-page .pj-hero-btns { gap:10px; }
 .project-page .pj-hero-btns a { width:auto; padding:15px 18px; font-size:14px; }
 .project-page .pj-photo-open { top:20px; right:24px; padding:12px 16px; }
 .project-page .pj-facts { gap:24px; padding:28px 0; }
 .project-page .pj-fact { flex:1 1 120px; }
 .pj-section-nav .container { gap:24px; }
 .project-page .pj-section { padding:56px 0; scroll-margin-top:80px; }
 .project-page .pj-gallery { gap:12px; margin-top:24px; }
 .project-page .pj-gal-thumb { height:190px; }
 .project-page .pj-gal-thumb.is-floorplan img { padding:6px; }
 .project-page .pj-gal-more { font-size:14px; padding:12px; }
 .project-page .pj-about-body p { font-size:16px; line-height:1.85; }
 .project-page .pj-amen-list { grid-template-columns:1fr; }
 .project-page .pj-about-meta { padding:24px; }
 .project-page .pj-empty { padding:20px 24px; }
 .project-page .pj-document-link { flex-direction:column; align-items:flex-start; gap:14px; }
 .project-page .pj-lb__dialog { padding:72px 12px 90px; }
 .project-page .pj-lb__nav { top:auto; bottom:20px; transform:none; }
 .project-page .pj-lb__prev { left:calc(50% - 60px); }
 .project-page .pj-lb__next { right:calc(50% - 60px); }
}
@media(prefers-reduced-motion:reduce) { .project-page .pj-gal-thumb img { transition:none; } }

.project-page .pj-about-body h3 { font:400 27px/1.3 var(--font-heading); margin:34px 0 14px; color:var(--color-primary); }
.project-page .pj-about-meta dd { text-align:left; margin-top:8px; font-weight:400; }
@media(max-width:767px) { .project-page #pj-fact-dokonceni { flex-basis:100%; max-width:none; order:5; } }

.project-page .pj-mobile-sort { display:none; }
.project-page .pj-gal-thumb:last-child:nth-child(odd) { grid-column:1 / -1; }
@media(max-width:767px) {
 .project-page .pj-mobile-sort { display:grid; gap:10px; margin-top:24px; }
 .project-page .pj-mobile-sort label { font-size:13px; color:var(--color-text-light); }
 .project-page .pj-mobile-sort select { width:100%; min-height:48px; padding:12px; border:1px solid rgba(11,59,46,.2); background:#fff; color:var(--color-primary); font:16px var(--font-body); }
 .project-page .pj-table thead { display:none; }
}

/* Podnavigace projektu se lepí pod plovoucí kartu navigace, ne pod horní hranu. */
.project-page .pj-section-nav { position: sticky; top: var(--header-h, 100px); z-index: 20; }

/* ── TRUST BAR (Eda 9. 9., vzor Wenzi) ───────────────────────────────────────
   Karta přesahující hero, velká čísla s ikonou a pod nimi časová osa projektu.
   Dřív to byl holý řádek čísel splývající s pozadím. */
.project-page .pj-trust {
    position: relative;
    z-index: 2;
    margin: -56px 0 0;
    padding: 2rem 2.25rem;
    background: var(--color-white);
    border-radius: var(--radius-karta);
    box-shadow: 0 18px 44px rgba(11, 59, 46, 0.12);
}

.project-page .pj-facts-grid {
    display: grid;
    /* 160 px: šest faktů se na širokém displeji vejde do jedné řady, aby
       developer nevisel sám na druhém řádku. */
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1.75rem 1.5rem;
}

.project-page .pj-fact {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.project-page .pj-fact > i,
.project-page .pj-fact > svg {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 0.35rem;
    color: var(--color-accent);
}

.project-page .pj-fact-val {
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    line-height: 1.2;
    color: var(--color-primary);
    overflow-wrap: anywhere;
}

.project-page #pj-fact-dokonceni .pj-fact-val,
.project-page #pj-fact-lokalita .pj-fact-val,
.project-page #pj-fact-developer .pj-fact-val {
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    line-height: 1.35;
}

.project-page .pj-fact-lbl {
    margin-top: 0.35rem;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-text-light);
}

/* ── Časová osa ─────────────────────────────────────────────────────────── */
.project-page .pj-timeline {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 1rem;
    list-style: none;
    margin: 2rem 0 0;
    padding: 1.75rem 0 0;
    border-top: 1px solid rgba(11, 59, 46, 0.1);
}

.project-page .pj-timeline-krok {
    position: relative;
    padding-top: 1.4rem;
    min-width: 0;
}

/* Linka spojuje body mezi sebou, u posledního kroku končí. */
.project-page .pj-timeline-krok::before {
    content: '';
    position: absolute;
    top: 5px;
    left: 0;
    right: -1rem;
    height: 1px;
    background: rgba(11, 59, 46, 0.16);
}
.project-page .pj-timeline-krok:last-child::before { right: 0; }

.project-page .pj-timeline-bod {
    position: absolute;
    top: 0;
    left: 0;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--color-accent);
}

.project-page .pj-timeline-nazev {
    display: block;
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--color-primary);
}

.project-page .pj-timeline-popis {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.85rem;
    color: var(--color-text-light);
}

@media (max-width: 767px) {
    .project-page .pj-trust { margin-top: -32px; padding: 1.5rem 1.25rem; }
    .project-page .pj-facts-grid { grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; }
    /* Na mobilu jde osa pod sebe — vodorovná by se nevešla. */
    .project-page .pj-timeline { grid-auto-flow: row; gap: 1.1rem; }
    .project-page .pj-timeline-krok { padding-top: 0; padding-left: 1.6rem; }
    .project-page .pj-timeline-krok::before {
        top: 6px; bottom: -1.1rem; left: 5px; right: auto; width: 1px; height: auto;
    }
    .project-page .pj-timeline-krok:last-child::before { bottom: auto; height: 0; }
    .project-page .pj-timeline-bod { top: 1px; }
}
