/* Pass 30 — National Parks & World Heritage Completion */
.page-heritage-atlas,
.page-heritage-layer,
.entity-page {
    --pass30-navy: #061d2e;
    --pass30-blue: #0c4568;
    --pass30-pine: #174e3e;
    --pass30-cream: #f5f0e5;
    --pass30-gold: #f4c83b;
    --pass30-rust: #b84a32;
    --pass30-line: rgba(9,34,52,.16);
}

.heritage-hero--pass30 {
    padding: clamp(4.5rem,7vw,7.2rem) 0 clamp(3.5rem,6vw,5.5rem);
    background:
        radial-gradient(circle at 80% 18%, rgba(244,200,59,.22), transparent 22rem),
        radial-gradient(circle at 92% 84%, rgba(50,145,132,.24), transparent 28rem),
        linear-gradient(132deg,#061827 0%,#07334f 55%,#125460 100%);
}
.heritage-hero--pass30 .heritage-hero__grid { align-items: center; }
.heritage-hero--pass30 h1 { max-width: 12ch; font-size: clamp(3.15rem,7vw,7rem); }
.heritage-hero--pass30 h1 em { display: inline-block; max-width: 11ch; }
.heritage-completion-dial {
    position: relative;
    display: grid;
    grid-template-columns: 10rem 1fr;
    gap: 1rem;
    align-items: center;
    padding: clamp(1.2rem,2.6vw,2rem);
    border: 1px solid rgba(255,255,255,.22);
    background: linear-gradient(145deg,rgba(2,18,29,.76),rgba(5,35,48,.56));
    box-shadow: 0 30px 80px rgba(0,0,0,.28);
    backdrop-filter: blur(16px);
}
.heritage-completion-dial::before,
.heritage-completion-dial::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(244,200,59,.18);
    border-radius: 50%;
    pointer-events: none;
}
.heritage-completion-dial::before { width: 15rem; height: 15rem; left: -3rem; top: -4rem; }
.heritage-completion-dial::after { width: 22rem; height: 22rem; left: -6.5rem; top: -7.5rem; }
.heritage-completion-dial__ring {
    position: relative;
    z-index: 1;
    width: 9.3rem;
    aspect-ratio: 1;
    display: grid;
    place-content: center;
    text-align: center;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.34);
    box-shadow: inset 0 0 0 1rem rgba(255,255,255,.035), inset 0 0 0 1.08rem rgba(244,200,59,.28);
}
.heritage-completion-dial__ring span { font-size: 3.7rem; line-height: .85; font-weight: 900; letter-spacing: -.06em; color: var(--pass30-gold); }
.heritage-completion-dial__ring small { margin-top: .55rem; color: rgba(255,255,255,.62); font-size: .7rem; line-height: 1.25; letter-spacing: .1em; text-transform: uppercase; }
.heritage-completion-dial__rows { position: relative; z-index: 1; display: grid; gap: .5rem; }
.heritage-completion-dial__rows a {
    display: grid;
    grid-template-columns: 2.8rem 1fr auto;
    gap: .7rem;
    align-items: center;
    padding: .8rem;
    color: #fff;
    border: 1px solid rgba(255,255,255,.15);
    background: rgba(255,255,255,.06);
    text-decoration: none;
}
.heritage-completion-dial__rows a:hover { background: rgba(255,255,255,.12); }
.heritage-completion-dial__rows a > span { color: var(--pass30-gold); font-size: 1.7rem; font-weight: 900; }
.heritage-completion-dial__rows strong { display: block; font-size: .92rem; }
.heritage-completion-dial__rows small { color: rgba(255,255,255,.58); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.heritage-completion-dial > p { position: relative; z-index: 1; grid-column: 1/-1; margin: .5rem 0 0; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.65); font-size: .84rem; line-height: 1.55; }

.heritage-completion-ledger { position: relative; z-index: 3; margin-top: -1.5rem; }
.heritage-completion-ledger__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.heritage-completion-ledger__card {
    --completion-accent: #2a8063;
    position: relative;
    overflow: hidden;
    min-height: 22rem;
    display: flex;
    flex-direction: column;
    padding: clamp(1.5rem,3vw,2.5rem);
    color: #fff;
    background: linear-gradient(135deg,#0b3028,#1e624d);
    box-shadow: 0 22px 60px rgba(7,29,44,.16);
}
.heritage-completion-ledger__card--world { --completion-accent:#4c83b7; background: linear-gradient(135deg,#0b2949,#205b86); }
.heritage-completion-ledger__card::after {
    content: "";
    position: absolute;
    right: -5rem;
    bottom: -8rem;
    width: 19rem;
    height: 19rem;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 0 0 3rem rgba(255,255,255,.025),0 0 0 6rem rgba(255,255,255,.018);
}
.heritage-completion-ledger__card header { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.heritage-completion-ledger__card header span { font-size: .7rem; font-weight: 900; letter-spacing: .15em; color: rgba(255,255,255,.72); }
.heritage-completion-ledger__card header strong { color: var(--pass30-gold); font-size: 2rem; letter-spacing: -.05em; }
.heritage-completion-ledger__card h2 { position: relative; z-index: 1; max-width: 15ch; margin: 2rem 0 .9rem; font-size: clamp(2rem,3.8vw,3.8rem); line-height: .97; letter-spacing: -.05em; }
.heritage-completion-ledger__card p { position: relative; z-index: 1; max-width: 43rem; color: rgba(255,255,255,.72); line-height: 1.65; }
.heritage-completion-ledger__card footer { position: relative; z-index: 1; margin-top: auto; display: flex; flex-wrap: wrap; gap: .8rem; }
.heritage-completion-ledger__card footer a { color: #fff; font-weight: 850; text-decoration: none; border-bottom: 2px solid var(--pass30-gold); padding-bottom: .25rem; }
.heritage-completion-ledger + .heritage-metrics { margin-top: 1rem; }

.heritage-layer-card.is-complete { background: linear-gradient(160deg,#fff 0%,#fff 70%,rgba(244,200,59,.08) 100%); }
.heritage-layer-card.is-complete::after { content: "✓ HELHET"; position: absolute; top: 1.9rem; right: -2.8rem; transform: rotate(45deg); width: 11rem; padding: .3rem; color: #fff; background: var(--card-accent); text-align: center; font-size: .62rem; font-weight: 900; letter-spacing: .13em; }

.heritage-geometry-contract { padding: clamp(5rem,8vw,8rem) 0; color: #fff; background: linear-gradient(125deg,#0a2538,#0b4252); }
.heritage-geometry-contract__grid { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: clamp(3rem,7vw,8rem); align-items: center; }
.heritage-geometry-contract h2 { margin: .4rem 0 0; max-width: 12ch; font-size: clamp(2.8rem,5vw,5rem); line-height: .94; letter-spacing: -.06em; }
.heritage-geometry-contract ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.16); }
.heritage-geometry-contract li { display: grid; grid-template-columns: 3.2rem 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.heritage-geometry-contract li > span { color: var(--pass30-gold); font-size: 1.35rem; font-weight: 900; }
.heritage-geometry-contract li strong { font-size: 1.08rem; }
.heritage-geometry-contract li p { margin: .35rem 0 0; color: rgba(255,255,255,.65); line-height: 1.55; }

.heritage-layer-hero--completed { position: relative; overflow: hidden; padding: clamp(4rem,6.5vw,6.5rem) 0 clamp(3rem,5vw,4.5rem); }
.heritage-layer-hero--completed::after { content: ""; position: absolute; width: 34rem; height: 34rem; right: -10rem; top: -13rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.11); box-shadow: 0 0 0 5rem rgba(255,255,255,.025),0 0 0 10rem rgba(255,255,255,.018); pointer-events: none; }
.heritage-layer-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(18rem,.58fr); gap: clamp(2rem,6vw,6rem); align-items: end; }
.heritage-layer-hero--completed h1 { font-size: clamp(3.3rem,7vw,7rem); }
.heritage-layer-completion { padding: 1.35rem; border: 1px solid rgba(255,255,255,.24); background: rgba(0,0,0,.18); backdrop-filter: blur(12px); }
.heritage-layer-completion > div { display: flex; align-items: baseline; gap: .5rem; }
.heritage-layer-completion > div span { color: var(--pass30-gold); font-size: clamp(3.5rem,7vw,6rem); line-height: .8; font-weight: 900; letter-spacing: -.07em; }
.heritage-layer-completion > div small { color: rgba(255,255,255,.58); font-weight: 850; }
.heritage-layer-completion > strong { display: block; margin-top: .8rem; font-size: 1.25rem; }
.heritage-layer-completion p { color: rgba(255,255,255,.68); line-height: 1.55; font-size: .9rem; }
.heritage-layer-completion a { color: #fff; font-weight: 850; }

.heritage-layer-truth { background: #efe8da; border-bottom: 1px solid rgba(10,36,53,.12); }
.heritage-layer-truth__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.heritage-layer-truth__grid > div { min-height: 10.5rem; padding: 1.5rem; border-right: 1px solid rgba(10,36,53,.12); }
.heritage-layer-truth__grid > div:last-child { border-right: 0; }
.heritage-layer-truth span { display: block; margin-bottom: 1.5rem; color: #7a6a50; font-size: .67rem; font-weight: 900; letter-spacing: .13em; }
.heritage-layer-truth strong { color: #0b2c42; font-size: 1.05rem; }
.heritage-layer-truth p { margin: .45rem 0 0; color: #5f6a6e; line-height: 1.55; font-size: .88rem; }

.heritage-layer-toolbar nav > span { color: #6b777c; font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.heritage-object-grid--complete { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.heritage-object-card--complete { min-height: 0; padding: 0; overflow: hidden; box-shadow: 0 14px 40px rgba(9,34,52,.08); }
.heritage-object-card__media { position: relative; display: block; aspect-ratio: 16/7.7; overflow: hidden; background: #0c3345; }
.heritage-object-card__media::after { content: "ÖVERSIKT · REPRESENTATIV POSITION"; position: absolute; left: .85rem; bottom: .75rem; padding: .35rem .5rem; color: #fff; background: rgba(4,25,37,.75); font-size: .6rem; font-weight: 900; letter-spacing: .1em; }
.heritage-object-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.heritage-object-card--complete:hover .heritage-object-card__media img { transform: scale(1.018); }
.heritage-object-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.35rem; }
.heritage-object-card--complete h2 { margin: .4rem 0 .8rem; font-size: clamp(1.75rem,3vw,3rem); }
.heritage-object-card__year { margin: 1.5rem 0 0; color: #6f7d84; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.heritage-object-card__year strong { color: #0b3558; font-size: 1.15rem; }
.heritage-object-card__themes { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; margin: 1rem 0; padding: 0; }
.heritage-object-card__themes li { padding: .35rem .5rem; color: #395262; border: 1px solid rgba(11,53,88,.12); background: #f5f1e8; font-size: .69rem; font-weight: 750; }
.heritage-object-card--complete dl { margin-top: 1rem; }
.heritage-object-card--complete dl div { grid-template-columns: 6.8rem 1fr; }
.heritage-object-card--complete dl dd { font-size: .84rem; line-height: 1.45; }
.heritage-object-card__lens { margin: 1rem 0; padding: .85rem; border-left: .3rem solid var(--pass30-gold); background: #f7f2e7; }
.heritage-object-card__lens span { color: #786a4e; font-size: .63rem; font-weight: 900; letter-spacing: .11em; }
.heritage-object-card__lens p { margin: .35rem 0 0; color: #3f5360; line-height: 1.5; font-size: .85rem; }
.heritage-object-card--complete footer { display: flex; flex-wrap: wrap; gap: .65rem 1rem; padding-top: .9rem; border-top: 1px solid rgba(11,35,56,.1); }
.heritage-object-card--complete footer a { font-size: .82rem; text-decoration: none; }
.heritage-object-card__credit { display: block; margin-top: .8rem; color: #7b858a; font-size: .65rem; line-height: 1.4; }
.heritage-object-card__credit a { color: inherit; }

.entity-heritage-experience { grid-column: 1/-1; padding: clamp(1.2rem,2.6vw,2rem); border: 1px solid rgba(255,255,255,.18); background: rgba(3,17,27,.4); }
.entity-heritage-experience > header { display: flex; justify-content: space-between; gap: 1rem; align-items: end; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.14); }
.entity-heritage-experience > header span { color: var(--pass30-gold); font-size: .68rem; font-weight: 900; letter-spacing: .13em; }
.entity-heritage-experience > header h3 { margin: .3rem 0 0; font-size: clamp(1.8rem,3.5vw,3.2rem); line-height: .95; }
.entity-heritage-experience > header a,
.entity-heritage-experience__grid a { color: #fff; font-weight: 850; }
.entity-heritage-experience__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; padding-top: 1rem; }
.entity-heritage-experience__grid > div { padding: 1rem; background: rgba(255,255,255,.055); }
.entity-heritage-experience__grid small { color: rgba(255,255,255,.55); font-size: .66rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.entity-heritage-experience__grid p { color: rgba(255,255,255,.76); line-height: 1.55; }
.entity-heritage-experience__criteria { color: rgba(255,255,255,.7); }
.entity-heritage-experience__criteria strong { color: #fff; margin-right: .5rem; }
.entity-heritage-experience > nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.entity-heritage-experience > nav a { padding: .55rem .7rem; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); text-decoration: none; font-size: .8rem; font-weight: 750; }

.map-pass30-context { display: grid; grid-template-columns: minmax(14rem,.55fr) minmax(20rem,1fr) auto; gap: 1.2rem; align-items: center; margin: 0 0 1rem; padding: 1rem 1.15rem; color: #fff; background: linear-gradient(125deg,#0a2b41,#15584f); border-left: .35rem solid var(--pass30-gold); }
.map-pass30-context span { display: block; color: var(--pass30-gold); font-size: .64rem; font-weight: 900; letter-spacing: .12em; }
.map-pass30-context strong { display: block; margin-top: .25rem; }
.map-pass30-context p { margin: 0; color: rgba(255,255,255,.7); line-height: 1.5; font-size: .84rem; }
.map-pass30-context a { color: #fff; font-weight: 850; white-space: nowrap; }

@media (max-width: 1050px) {
    .heritage-completion-dial { grid-template-columns: 8rem 1fr; }
    .heritage-completion-dial__ring { width: 7.4rem; }
    .heritage-object-grid--complete { grid-template-columns: 1fr 1fr; }
    .map-pass30-context { grid-template-columns: 1fr 1fr; }
    .map-pass30-context > a { grid-column: 1/-1; }
}

@media (max-width: 820px) {
    .heritage-completion-ledger__grid,
    .heritage-geometry-contract__grid,
    .heritage-layer-hero__grid,
    .heritage-layer-truth__grid,
    .entity-heritage-experience__grid { grid-template-columns: 1fr; }
    .heritage-layer-truth__grid > div { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(10,36,53,.12); }
    .heritage-layer-truth__grid > div:last-child { border-bottom: 0; }
    .heritage-object-grid--complete { grid-template-columns: 1fr; }
    .heritage-layer-completion { max-width: 32rem; }
}

@media (max-width: 620px) {
    .heritage-hero--pass30 { padding-top: 3.5rem; }
    .heritage-completion-dial { grid-template-columns: 1fr; }
    .heritage-completion-dial__ring { width: 8.4rem; margin: 0 auto; }
    .heritage-completion-ledger { margin-top: 0; }
    .heritage-completion-ledger__card { min-height: 19rem; }
    .heritage-object-card__media { aspect-ratio: 16/9; }
    .heritage-object-card__media::after { font-size: .52rem; }
    .entity-heritage-experience > header { align-items: flex-start; flex-direction: column; }
    .map-pass30-context { grid-template-columns: 1fr; }
    .map-pass30-context > a { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .heritage-object-card__media img { transition: none; }
}
