/* St. John's Heritage Trail - [sjht_stops]
   This is the stylesheet from the original hand-built Trail Map cards,
   unchanged apart from one addition at the end for sites that have no
   photograph yet. Scoped to .sjht-sites throughout. */

.sjht-sites{--sjht-navy:#161B4A;--sjht-teal:#16B0AA;--sjht-pink:#E5106B;--sjht-orange:#F0862B;--sjht-text:#2B2F38;--sjht-muted:#5B6270;--sjht-line:#E5E7EB;box-sizing:border-box;max-width:1200px;margin:0 auto;padding:0 16px}
.sjht-sites *,.sjht-sites *::before,.sjht-sites *::after{box-sizing:border-box}

.sjht-sites .sjht-block{padding:48px 0}
.sjht-sites .sjht-block--teal{background:var(--sjht-teal);padding:48px 20px;margin:48px -16px 0;border-radius:4px}

.sjht-sites .sjht-head{margin:0 0 6px;font-size:clamp(24px,4vw,34px);line-height:1.15;font-weight:700;color:var(--sjht-navy);letter-spacing:-.01em}
.sjht-sites .sjht-block--teal .sjht-head{color:#fff}
.sjht-sites .sjht-sub{margin:0 0 28px;font-size:15px;line-height:1.5;color:var(--sjht-muted)}
.sjht-sites .sjht-block--teal .sjht-sub{color:#DFF6F4}
.sjht-sites .sjht-rule{width:64px;height:3px;background:var(--sjht-pink);border:0;margin:0 0 16px}
.sjht-sites .sjht-block--teal .sjht-rule{background:#fff}

.sjht-sites .sjht-grid{display:grid;grid-template-columns:1fr;gap:22px;margin:0;padding:0;list-style:none}
@media (min-width:600px){.sjht-sites .sjht-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.sjht-sites .sjht-grid{grid-template-columns:repeat(3,1fr)}}

.sjht-sites .sjht-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--sjht-line);border-radius:4px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.sjht-sites .sjht-card:hover,.sjht-sites .sjht-card:focus-within{transform:translateY(-3px);box-shadow:0 10px 24px rgba(22,27,74,.12)}
.sjht-sites .sjht-block--teal .sjht-card{border-color:transparent}

.sjht-sites .sjht-media{position:relative;margin:0;aspect-ratio:4/3;background:#EDEFF2;overflow:hidden}
.sjht-sites .sjht-media img{width:100%;height:100%;object-fit:cover;display:block}

.sjht-sites .sjht-num{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:16px;background:var(--sjht-navy);color:#fff;font-size:14px;font-weight:700;line-height:1;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.sjht-sites .sjht-block--teal .sjht-num{background:var(--sjht-orange)}

.sjht-sites .sjht-body{display:flex;flex-direction:column;flex:1 1 auto;padding:18px}
.sjht-sites .sjht-title{margin:0 0 8px;font-size:18px;line-height:1.3;font-weight:700;color:var(--sjht-navy)}
.sjht-sites .sjht-text{margin:0 0 16px;font-size:14.5px;line-height:1.55;color:var(--sjht-text)}
.sjht-sites .sjht-more{margin-top:auto;align-self:flex-start;font-size:14px;font-weight:700;color:var(--sjht-teal);text-decoration:none;border-bottom:2px solid transparent;transition:border-color .15s ease}
.sjht-sites .sjht-more:hover,.sjht-sites .sjht-more:focus{border-bottom-color:var(--sjht-teal)}

/* whole card clickable, link text still readable by screen readers */
.sjht-sites .sjht-more::after{content:"";position:absolute;inset:0}
.sjht-sites .sjht-more:focus-visible{outline:2px solid var(--sjht-navy);outline-offset:2px}

@media (prefers-reduced-motion:reduce){
  .sjht-sites .sjht-card{transition:none}
  .sjht-sites .sjht-card:hover,.sjht-sites .sjht-card:focus-within{transform:none}
}

/* ADDED: shown in place of the photograph while a site still has none, so a
   missing image reads as work outstanding rather than a broken picture. */
.sjht-sites .sjht-noimg{display:block;width:100%;height:100%;background:repeating-linear-gradient(45deg,#EDEFF2,#EDEFF2 10px,#E4E7EC 10px,#E4E7EC 20px)}
