/* Shared finishing touches for static reports and the live hike diary. */
:root{--trail-forest:#24583b;--trail-coast:#246b80;--trail-granite:#526068;--trail-line:#d5dfd8;--trail-mist:#f0f4ef}
/* A consistent landscape window, without cropping full report galleries. */
.cards .card>img,.cards .preview-photo,.cards .card-image,.start-here__grid .start-card>img,.related-hike-card img,.trail-card-image{display:block;width:100%;height:auto!important;min-height:0;aspect-ratio:3/2;object-fit:cover;object-position:center;background-size:cover;background-position:center}
.cards .card-image img{width:100%;height:100%;object-fit:cover}
.cards .card,.start-card,.related-hike-card{border-color:var(--trail-line)}
.cards .card h3,.start-card h3,.related-hike-card h3{color:var(--trail-forest)}
.cards .read,.start-card__body>a,.related-hike-card__read{color:var(--trail-coast);text-underline-offset:5px}
main .button:not(.primary){border:1px solid var(--trail-forest);background:var(--trail-forest);color:#fff}
.story p,.report-body p,.trail-story{line-height:1.85}
.story p+p,.report-body p+p{margin-top:1.3em}
.gallery{gap:22px}
.gallery figcaption{margin-top:10px;line-height:1.65;color:var(--trail-granite)}
.gallery-head{margin-bottom:36px}
/* The same card treatment for distance, parking, difficulty and pub stops. */
.practical-info__item,.fact,.trail-practical-item,.hike-at-glance dl>div{border:1px solid var(--trail-line);border-radius:16px;background:#fff;padding:22px;box-shadow:0 5px 18px #16342608;min-width:0;overflow-wrap:anywhere}
.hike-at-glance dl>div{background:var(--trail-mist)}
.hike-at-glance dl{gap:16px}
.practical-info__item h3,.trail-practical-item h3,.hike-at-glance dt{color:var(--trail-forest);line-height:1.4}
.practical-info__warning{background:#163426;border-color:#163426}
.practical-info__warning h3{color:#f1bf69}
.practical-info__warning p{color:#e5ece7}
/* Keep John's words, give every existing verdict the same visual signature. */
.verdict,.johns-verdict,.trail-verdict{position:relative;isolation:isolate;border:1px solid #315441;border-left:5px solid #e5ad52;border-radius:20px;background:#163426;color:#fff;padding:clamp(24px,4vw,36px);box-shadow:0 10px 28px #16342614}
.verdict>strong{display:block;color:#f1bf69;font:700 clamp(1.65rem,4vw,2.2rem)/1.2 Georgia,serif}
.verdict p,.johns-verdict p{color:#eef4ef;font-size:1.08rem;line-height:1.85;font-style:italic}
.verdict p{margin-top:16px}
/* Poster remains visible until the visitor chooses to play. */
.trail-video-cover{position:relative;overflow:hidden;border-radius:18px;background:#10251a;box-shadow:0 8px 26px #16342616}
.trail-video-cover video{display:block;width:100%;margin:0!important}
.trail-video-play{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 20px;border:2px solid #fff;border-radius:999px;background:#163426eb;color:#fff;font:750 1rem/1.3 system-ui,sans-serif;white-space:nowrap;cursor:pointer;box-shadow:0 4px 24px #0005}
.trail-video-play:hover{background:#246b80}
.trail-video-play:focus-visible{outline:4px solid #f1bf69;outline-offset:5px}
.trail-video-play[hidden]{display:none}
@media(max-width:700px){
 .story{gap:32px}.story p,.report-body p{font-size:1.04rem;line-height:1.85}
 .gallery{gap:26px}.gallery-head{margin-bottom:26px}
 .practical-info__grid,.hike-at-glance dl{grid-template-columns:1fr}
 .practical-info__item,.fact,.trail-practical-item,.hike-at-glance dl>div{padding:20px}
 .cards,.start-here__grid{gap:26px}
 .related-hike-card{display:block}.related-hike-card img{min-height:0}
 .trail-video-play{font-size:.95rem}
}
