/* ============================================================================
   The Dahlonega Journal — "The Broadsheet" design system
   WSJ-grade newspaper front. Playfair Display + Source Serif 4 + Libre Franklin.
   Warm newsprint + ink + single claret accent (+ antique-gold nameplate whisper).
   Styles the full dj- class system (front page + 6 interior guide pages).
   Loaded site-wide via journal-design.php. No dark bands — ink on paper.
   ============================================================================ */

:root{
  --ink:#1a1712;            /* near-black warm — body + rules */
  --ink-soft:#332d24;
  --paper:#f7f3ea;          /* warm newsprint */
  --paper-2:#efe8d9;        /* panel / band */
  --paper-3:#e9e0cd;        /* deeper panel edge */
  --claret:#8c1c1c;         /* single accent — broadsheet section red */
  --claret-dk:#6f1414;      /* hover / small-on-paper */
  --gold:#8a6a2b;           /* antique gold — decorative nameplate rule only */
  --rule:#cbc1a9;           /* hairline warm gray */
  --rule-2:#ddd4bf;         /* lighter hairline */
  --meta:#5c5446;           /* bylines / captions — AA on paper (~6.5:1) */
  --meta-2:#726957;
  --serif-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --serif-body:"Source Serif 4","Iowan Old Style",Georgia,serif;
  --sans:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
  --shell:1300px;
  --measure:64ch;
}

/* ---- reset-ish + base ---------------------------------------------------- */
body.dj{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif-body);
  font-size:18px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.dj::selection,.dj ::selection{background:var(--claret);color:#fff;}
.dj a{color:var(--claret);text-decoration:none;}
.dj a:hover{color:var(--claret-dk);text-decoration:underline;text-underline-offset:2px;}
.dj img{max-width:100%;height:auto;display:block;}
.dj p{margin:0 0 1rem;}

/* subtle paper grain — atmosphere without weight */
body.dj::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/></svg>");
}
.dj-front-page,.dj-inner-page,.dj-mast,.dj-foot{position:relative;z-index:1;}

/* ---- TT2025 container overrides: let the broadsheet run wide ------------- */
body.dj .wp-block-post-content,
body.dj .entry-content,
body.dj main .is-layout-constrained{max-width:none !important;}
body.dj main{padding:0 !important;margin-top:0 !important;}
body.dj .wp-block-post-content{padding:0 !important;}
body.dj .wp-site-blocks{padding:0 !important;}
/* neutralise TT2025 top spacing so the masthead sits flush */
body.dj .wp-block-group.has-global-padding{padding-left:0 !important;padding-right:0 !important;}
/* neutralise TT2025 .alignfull negative-margin (100vw) breakout — it overshoots the
   scrollbar and causes horizontal overflow. Our bands/masthead run their own full-width
   backgrounds inside a plain 100%-width column, so kill the breakout entirely. */
body.dj .entry-content.alignfull,
body.dj .wp-block-post-content.alignfull,
body.dj .wp-block-group.alignfull,
body.dj main .alignfull{
  width:100% !important;max-width:100% !important;
  margin-left:0 !important;margin-right:0 !important;
  padding-left:0 !important;padding-right:0 !important;
}
html.dj-js-root,body.dj{overflow-x:clip;}
/* TT2025 auto-renders the page title as an <h1 class="wp-block-post-title">. Our front
   page + guide pages supply their own H1, so hide the duplicate there (keep it on legal
   pages + blog single posts, which rely on it). body.home is a no-:has fallback for home. */
body.home .wp-block-post-title,
body.dj:has(.dj-front-page) .wp-block-post-title,
body.dj:has(.dj-page-title) .wp-block-post-title{display:none;}

/* shared broadsheet margin */
.dj-shell{max-width:var(--shell);margin:0 auto;padding:0 clamp(1rem,4vw,2.75rem);}

/* ============================================================================
   MASTHEAD (header template part) — nameplate + utility bar + section nav
   ============================================================================ */
.dj-mast{background:var(--paper);border-bottom:3px double var(--ink);}
.dj-util{border-bottom:1px solid var(--rule);font-family:var(--sans);
  font-size:.7rem;letter-spacing:.04em;color:var(--meta);text-transform:uppercase;}
.dj-util-inner{max-width:var(--shell);margin:0 auto;padding:.45rem clamp(1rem,4vw,2.75rem);
  display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.dj-util-left{font-weight:600;}
.dj-util-center{font-weight:500;letter-spacing:.06em;color:var(--ink-soft);}
.dj-util-right{font-weight:600;text-align:right;}
@media(max-width:720px){.dj-util-left,.dj-util-right{display:none;}
  .dj-util-center{margin:0 auto;}}

.dj-nameplate{max-width:var(--shell);margin:0 auto;
  padding:1.35rem clamp(1rem,4vw,2.75rem) .85rem;text-align:center;}
.dj-nameplate a{color:var(--ink);text-decoration:none;display:inline-block;}
.dj-nameplate a:hover{color:var(--ink);}
.dj-nameplate-title{font-family:var(--serif-display);font-weight:900;
  font-size:clamp(2.3rem,6.4vw,4.7rem);line-height:.94;letter-spacing:-.01em;
  margin:0;color:var(--ink);}
.dj-nameplate-title .dj-the{display:block;font-size:.3em;font-weight:700;
  letter-spacing:.42em;text-indent:.42em;margin-bottom:.15em;color:var(--ink);}
.dj-nameplate-rule{width:min(560px,78%);height:0;margin:.95rem auto 0;
  border-top:2px solid var(--gold);position:relative;}
.dj-nameplate-rule::before{content:"◆";position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);background:var(--paper);padding:0 .6rem;
  color:var(--gold);font-size:.58rem;line-height:1;}
.dj-nameplate-sub{font-family:var(--sans);font-size:.72rem;letter-spacing:.34em;
  text-transform:uppercase;color:var(--meta);margin:1.5rem 0 0;font-weight:600;}

.dj-nav{border-top:1px solid var(--rule);background:var(--paper);}
.dj-nav-inner{max-width:var(--shell);margin:0 auto;
  padding:.6rem clamp(1rem,4vw,2.75rem);display:flex;flex-wrap:wrap;gap:1.4rem;
  justify-content:center;align-items:center;}
.dj-nav a{font-family:var(--sans);font-size:.76rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
  padding:.15rem 0;position:relative;text-decoration:none;}
.dj-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--claret);transition:right .28s ease;}
.dj-nav a:hover{color:var(--claret);}
.dj-nav a:hover::after{right:0;}

/* ============================================================================
   FRONT PAGE
   ============================================================================ */
.dj-front-page{padding:0 0 3rem;}
.dj-front-page>*{max-width:var(--shell);margin-left:auto;margin-right:auto;
  padding-left:clamp(1rem,4vw,2.75rem);padding-right:clamp(1rem,4vw,2.75rem);}

/* legacy datebar (kept if present in content) */
.dj-datebar{border-bottom:1px solid var(--rule);}
.dj-datebar-inner{display:flex;justify-content:space-between;gap:1rem;
  font-family:var(--sans);font-size:.72rem;text-transform:uppercase;
  letter-spacing:.08em;color:var(--meta);padding:.5rem 0;}
@media(max-width:720px){.dj-datebar-left,.dj-datebar-right{display:none;}}

/* top rules */
.dj-top-rule{padding-top:1.4rem !important;padding-bottom:.2rem !important;}
.dj-hr-thick{border:none;border-top:3px solid var(--ink);margin:0 0 3px;}
.dj-hr-thin{border:none;border-top:1px solid var(--ink);margin:0;}
.dj-section-rule{padding-top:0 !important;padding-bottom:0 !important;}
.dj-section-rule hr{border:none;border-top:1px solid var(--rule);
  max-width:var(--shell);margin:2.4rem auto;}
.dj-rule-double{height:0;border-top:3px double var(--ink);margin:1.1rem 0 1.6rem;}
.dj-col-rule{height:0;border-top:1px solid var(--rule);margin:1.4rem 0;}

/* kickers / section labels */
.dj-section-label{font-family:var(--sans);font-size:.7rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--claret);
  margin:0 0 .5rem;display:block;}
.dj-section-label-gold{color:var(--gold);}
.dj-section-label-center,.dj-section-label.dj-section-label-center{text-align:center;}

/* ---- 3-column broadsheet grid with vertical rules ----------------------- */
.dj-front-columns{display:grid;
  grid-template-columns:1fr 1.65fr 1fr;gap:0;
  padding-top:1.9rem !important;padding-bottom:.5rem !important;}
.dj-col{padding:0 1.9rem;}
/* DOM order is center,left,right (so the H1 lead is the first heading) — CSS order
   restores the visual left|center|right broadsheet layout. */
.dj-col-left{padding-left:0;order:1;}
.dj-col-center{border-left:1px solid var(--rule);border-right:1px solid var(--rule);order:2;}
.dj-col-right{padding-right:0;order:3;}
@media(max-width:1000px){
  .dj-front-columns{grid-template-columns:1fr 1fr;}
  .dj-col-center{grid-column:1/-1;order:-1;border:none;padding:0 0 1.4rem;
    border-bottom:1px solid var(--rule);margin-bottom:1.6rem;}
  .dj-col-left{padding:0 1.6rem 0 0;border-right:1px solid var(--rule);}
  .dj-col-right{padding:0 0 0 1.6rem;}
}
@media(max-width:660px){
  .dj-front-columns{grid-template-columns:1fr;}
  .dj-col{padding:0;}
  .dj-col-left{border-right:none;padding-bottom:1.4rem;border-bottom:1px solid var(--rule);margin-bottom:1.6rem;}
  .dj-col-right{padding-left:0;}
}

/* headlines */
.dj-headline-lead{font-family:var(--serif-display);font-weight:800;
  font-size:clamp(2rem,4.3vw,3.2rem);line-height:1.03;letter-spacing:-.012em;
  margin:.1rem 0 .55rem;color:var(--ink);}
.dj-headline-xl{font-family:var(--serif-display);font-weight:700;
  font-size:clamp(1.55rem,2.7vw,2.15rem);line-height:1.08;margin:.1rem 0 .35rem;
  letter-spacing:-.008em;}
.dj-headline-lg{font-family:var(--serif-display);font-weight:700;
  font-size:clamp(1.4rem,2.2vw,1.72rem);line-height:1.1;margin:.1rem 0 .4rem;}
.dj-headline-md{font-family:var(--serif-display);font-weight:700;
  font-size:1.34rem;line-height:1.14;margin:.1rem 0 .4rem;}
.dj-headline-center{font-family:var(--serif-display);font-weight:800;
  font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.06;text-align:center;
  margin:.2rem 0 1.6rem;letter-spacing:-.01em;}
.dj-headline-lead a,.dj-headline-xl a,.dj-headline-lg a,.dj-headline-md a{color:var(--ink);}
.dj-headline-lead a:hover,.dj-headline-xl a:hover,.dj-headline-lg a:hover,.dj-headline-md a:hover{color:var(--claret);text-decoration:none;}

/* deck / byline / caption */
.dj-deck{font-family:var(--serif-body);font-style:italic;font-size:1.24rem;
  line-height:1.42;color:var(--ink-soft);margin:0 0 1rem;font-weight:400;}
.dj-byline{font-family:var(--sans);font-size:.72rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--meta);margin:0 0 .7rem;}
.dj-caption{font-family:var(--sans);font-size:.74rem;line-height:1.4;
  color:var(--meta);margin:.55rem 0 0;}
.dj-caption em{color:var(--meta-2);font-style:italic;}

/* body + drop cap */
.dj-body{font-size:1.02rem;line-height:1.64;margin:0 0 1rem;max-width:var(--measure);}
.dj-body-sm{font-size:.94rem;line-height:1.55;color:var(--ink-soft);margin:0 0 .85rem;}
.dj-body-drop{font-size:1.04rem;line-height:1.66;margin:0 0 1rem;max-width:var(--measure);}
.dj-body-drop::first-letter{font-family:var(--serif-display);font-weight:800;
  float:left;font-size:3.5em;line-height:.78;padding:.06em .12em 0 0;color:var(--claret);}
.dj-read-more{font-family:var(--sans);font-size:.74rem;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--claret);
  border-bottom:1px solid transparent;transition:border-color .2s;}
.dj-read-more:hover{border-bottom-color:var(--claret);text-decoration:none;}

/* lead image */
.dj-lead-image-wrap{margin:.4rem 0 1.1rem;}
.dj-lead-image{width:100%;filter:saturate(.92) contrast(1.03);border-bottom:1px solid var(--rule);}

/* at-a-glance stats */
.dj-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);
  margin:.4rem 0 1rem;}
.dj-stat{padding:.9rem .6rem;text-align:center;border-left:1px solid var(--rule);}
.dj-stat:first-child{border-left:none;}
.dj-stat-num{display:block;font-family:var(--serif-display);font-weight:800;
  font-size:1.6rem;line-height:1;color:var(--claret);}
.dj-stat-label{display:block;font-family:var(--sans);font-size:.62rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--meta);margin-top:.4rem;}
@media(max-width:560px){.dj-stats-row{grid-template-columns:1fr 1fr;}
  .dj-stat:nth-child(3){border-left:none;}
  .dj-stat:nth-child(3),.dj-stat:nth-child(4){border-top:1px solid var(--rule);}}

/* right rail — weather widget */
.dj-weather-widget{background:var(--paper-2);border:1px solid var(--rule);
  padding:1.1rem 1.1rem 1.25rem;margin-bottom:.4rem;}
.dj-weather-widget .dj-section-label{color:var(--ink);border-bottom:1px solid var(--rule);
  padding-bottom:.5rem;}
.dj-weather-loading{font-family:var(--sans);font-size:.8rem;color:var(--meta);padding:.6rem 0;}
.dj-weather-main{display:flex;align-items:center;gap:.7rem;margin:.4rem 0 .2rem;}
.dj-weather-icon{font-size:2.1rem;line-height:1;}
.dj-weather-icon img.emoji{width:2rem;height:2rem;vertical-align:middle;}
.dj-weather-temp-big{font-family:var(--serif-display);font-weight:800;font-size:2.4rem;
  line-height:1;color:var(--ink);}
.dj-weather-desc{font-family:var(--sans);font-size:.82rem;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--claret);margin:.15rem 0 .55rem;}
.dj-weather-details{display:flex;flex-direction:column;gap:.2rem;
  font-family:var(--sans);font-size:.72rem;color:var(--meta);border-top:1px solid var(--rule);
  padding-top:.55rem;}

/* sidebar list */
.dj-sidebar-list{list-style:none;margin:.6rem 0 0;padding:0;}
.dj-sidebar-list li{font-family:var(--serif-body);font-size:.95rem;line-height:1.4;
  padding:.5rem 0;border-bottom:1px solid var(--rule-2);color:var(--ink-soft);}
.dj-sidebar-list li:last-child{border-bottom:none;}
.dj-list-dot{color:var(--gold);margin-right:.5rem;font-size:.7em;vertical-align:middle;}

/* real estate / GPR card */
.dj-realty-card{background:var(--ink);color:var(--paper);padding:1.2rem 1.15rem 1.3rem;
  margin-top:.7rem;text-align:center;position:relative;}
.dj-realty-card::before{content:"";position:absolute;inset:5px;border:1px solid rgba(247,243,234,.28);pointer-events:none;}
.dj-realty-name{font-family:var(--serif-display);font-weight:700;font-size:1.35rem;
  color:#fff;letter-spacing:.01em;}
.dj-realty-tagline{font-family:var(--sans);font-size:.68rem;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:#e6c98a;margin:.35rem 0 .85rem;}
.dj-realty-phone{display:block;font-family:var(--serif-display);font-weight:700;
  font-size:1.5rem;color:#fff !important;margin:.1rem 0 .5rem;}
.dj-realty-phone:hover{color:#e6c98a !important;text-decoration:none;}
.dj-realty-link,.dj-realty-cta{display:inline-block;font-family:var(--sans);font-size:.74rem;
  font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#e6c98a !important;
  border:1px solid rgba(230,201,138,.5);padding:.5rem 1rem;transition:all .2s;}
.dj-realty-link:hover,.dj-realty-cta:hover{background:#e6c98a;color:var(--ink) !important;text-decoration:none;}

/* ---- full-width bands (light, newsprint) -------------------------------- */
.dj-section-band,.dj-events-section,.dj-articles-band{padding-top:.6rem !important;padding-bottom:.6rem !important;}

/* attractions grid */
.dj-attractions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:2px solid var(--ink);}
.dj-attraction-card{padding:1.4rem 1.4rem 1.5rem;border-left:1px solid var(--rule);
  border-bottom:1px solid var(--rule);}
.dj-attraction-card:first-child{border-left:none;}
.dj-attraction-card h3{font-family:var(--serif-display);font-weight:700;font-size:1.18rem;
  line-height:1.15;margin:.2rem 0 .55rem;color:var(--ink);}
.dj-attraction-card{font-family:var(--serif-body);font-size:.94rem;line-height:1.55;color:var(--ink-soft);}
.dj-attraction-icon{width:34px;height:3px;background:var(--claret);margin-bottom:.9rem;}
.dj-card-link{display:inline-block;margin-top:.7rem;font-family:var(--sans);font-size:.72rem;
  font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--claret);}
.dj-card-link:hover{text-decoration:underline;}
@media(max-width:900px){.dj-attractions-grid{grid-template-columns:1fr 1fr;}
  .dj-attraction-card:nth-child(3){border-left:none;}}
@media(max-width:520px){.dj-attractions-grid{grid-template-columns:1fr;}
  .dj-attraction-card{border-left:none;}}

/* events grid */
.dj-events-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:.3rem;}
.dj-event-item{display:flex;gap:.9rem;align-items:flex-start;
  border-top:2px solid var(--ink);padding-top:.9rem;}
.dj-event-date{flex:0 0 auto;text-align:center;background:var(--claret);color:#fff;
  padding:.4rem .6rem;min-width:52px;}
.dj-event-month{display:block;font-family:var(--sans);font-size:.62rem;font-weight:700;
  letter-spacing:.12em;}
.dj-event-day{display:block;font-family:var(--serif-display);font-weight:800;font-size:1.5rem;line-height:1;}
.dj-event-info h3{font-family:var(--serif-display);font-weight:700;font-size:1.06rem;
  line-height:1.15;margin:0 0 .3rem;color:var(--ink);}
.dj-event-info{font-family:var(--serif-body);font-size:.9rem;line-height:1.5;color:var(--ink-soft);}
.dj-events-cta{text-align:center;margin-top:2rem !important;}
@media(max-width:900px){.dj-events-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.dj-events-grid{grid-template-columns:1fr;}}

.dj-btn-secondary{display:inline-block;font-family:var(--sans);font-size:.76rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:var(--ink);
  padding:.85rem 1.7rem;border:1px solid var(--ink);transition:all .22s;}
.dj-btn-secondary:hover{background:var(--claret);border-color:var(--claret);color:#fff;text-decoration:none;}
/* the button is an <a>; beat the base `.dj a{color:claret}` rule so text stays paper-on-ink */
.dj a.dj-btn-secondary{color:var(--paper);}
.dj a.dj-btn-secondary:hover{color:#fff;}

/* articles band */
.dj-articles-band{background:var(--paper-2);margin-top:2.4rem;
  padding-top:2.6rem !important;padding-bottom:2.8rem !important;max-width:none;}
.dj-articles-band-header,.dj-articles-grid{max-width:var(--shell);margin:0 auto;
  padding-left:clamp(1rem,4vw,2.75rem);padding-right:clamp(1rem,4vw,2.75rem);}
.dj-articles-band-header{text-align:center;}
.dj-articles-band-header .dj-body{margin:0 auto;max-width:60ch;color:var(--ink-soft);}
.dj-section-heading{font-family:var(--serif-display);font-weight:800;
  font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.08;margin:.2rem 0 .8rem;
  letter-spacing:-.01em;color:var(--ink);}
.dj-articles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:1.8rem;
  border-top:2px solid var(--ink);}
.dj-article-card{padding:1.3rem 1.3rem 1.5rem;border-left:1px solid var(--rule);
  border-bottom:1px solid var(--rule);}
.dj-article-card:nth-child(4n+1){border-left:none;}
.dj-article-cat{font-family:var(--sans);font-size:.64rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--claret);margin-bottom:.5rem;}
.dj-article-title{font-family:var(--serif-display);font-weight:700;font-size:1.12rem;
  line-height:1.16;margin:0 0 .5rem;}
.dj-article-title a{color:var(--ink);}
.dj-article-title a:hover{color:var(--claret);text-decoration:none;}
.dj-article-lede{font-family:var(--serif-body);font-size:.9rem;line-height:1.5;color:var(--ink-soft);margin:0;}
@media(max-width:1000px){.dj-articles-grid{grid-template-columns:1fr 1fr;}
  .dj-article-card:nth-child(4n+1){border-left:1px solid var(--rule);}
  .dj-article-card:nth-child(2n+1){border-left:none;}}
@media(max-width:560px){.dj-articles-grid{grid-template-columns:1fr;}
  .dj-article-card{border-left:none !important;}}

/* ============================================================================
   INTERIOR GUIDE PAGES
   ============================================================================ */
.dj-inner-page{max-width:960px;margin:0 auto;
  padding:2.6rem clamp(1rem,4vw,2.75rem) 3.5rem;}
.dj-page-header{text-align:center;border-bottom:3px double var(--ink);padding-bottom:1.6rem;margin-bottom:2rem;}
.dj-page-title{font-family:var(--serif-display);font-weight:800;
  font-size:clamp(2.1rem,4.6vw,3.3rem);line-height:1.02;letter-spacing:-.014em;
  margin:.3rem 0 .7rem;color:var(--ink);}
.dj-page-intro{font-family:var(--serif-body);font-style:italic;font-size:1.24rem;
  line-height:1.45;color:var(--ink-soft);max-width:60ch;margin:0 auto;}
.dj-content-section{margin:0 0 2.6rem;}
.dj-content-section>.dj-section-heading{border-bottom:1px solid var(--rule);padding-bottom:.55rem;}
.dj-subheading{font-family:var(--serif-display);font-weight:700;font-size:1.4rem;
  line-height:1.15;margin:1.6rem 0 .6rem;color:var(--ink);}

.dj-venue-block{border-top:1px solid var(--rule);padding:1.4rem 0;}
.dj-venue-block:first-of-type{border-top:2px solid var(--ink);}
.dj-venue-label{font-family:var(--sans);font-size:.66rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--claret);margin-bottom:.4rem;}
.dj-venue-name{font-family:var(--serif-display);font-weight:700;font-size:1.5rem;
  line-height:1.12;margin:0 0 .55rem;color:var(--ink);}
.dj-venue-detail{font-family:var(--sans);font-size:.78rem;color:var(--meta);
  letter-spacing:.03em;margin:.5rem 0 0;}
.dj-venue-detail strong{color:var(--ink-soft);}

/* interior stat grids */
.dj-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;
  border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:1.6rem 0;}
.dj-stat-block{padding:1.1rem 1rem;text-align:center;border-left:1px solid var(--rule);}
.dj-stat-block:first-child{border-left:none;}
.dj-stat-number{display:block;font-family:var(--serif-display);font-weight:800;font-size:1.9rem;
  line-height:1;color:var(--claret);}
.dj-stat-sub{display:block;font-family:var(--sans);font-size:.64rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--meta);margin-top:.45rem;}

/* seasonal grid */
.dj-seasonal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.4rem;margin:1.4rem 0;}
.dj-seasonal-item{border-top:2px solid var(--ink);padding-top:.9rem;}
.dj-seasonal-item h3,.dj-seasonal-item h4{font-family:var(--serif-display);font-weight:700;
  font-size:1.2rem;margin:0 0 .4rem;color:var(--ink);}
.dj-seasonal-item{font-family:var(--serif-body);font-size:.94rem;line-height:1.55;color:var(--ink-soft);}

.dj-page-footer-nav{border-top:3px double var(--ink);margin-top:2.6rem;padding-top:1.6rem;
  display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;}
.dj-page-footer-nav a{font-family:var(--sans);font-size:.74rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);}
.dj-page-footer-nav a:hover{color:var(--claret);text-decoration:none;}

/* generic interior fallbacks (any un-classed content in dj- pages) */
.dj-inner-page h2{font-family:var(--serif-display);font-weight:800;font-size:1.7rem;margin:1.8rem 0 .7rem;color:var(--ink);}
.dj-inner-page h3{font-family:var(--serif-display);font-weight:700;font-size:1.35rem;margin:1.4rem 0 .55rem;color:var(--ink);}
.dj-inner-page ul{margin:0 0 1.1rem 1.2rem;}
.dj-inner-page li{margin:0 0 .45rem;}

/* ============================================================================
   FOOTER (footer template part) — newspaper colophon
   ============================================================================ */
.dj-foot{background:var(--paper);border-top:3px double var(--ink);margin-top:1rem;}
.dj-foot-inner{max-width:var(--shell);margin:0 auto;padding:2.6rem clamp(1rem,4vw,2.75rem) 1.6rem;}
.dj-foot-top{text-align:center;border-bottom:1px solid var(--rule);padding-bottom:1.8rem;margin-bottom:1.6rem;}
.dj-foot-name{font-family:var(--serif-display);font-weight:900;font-size:clamp(1.8rem,4vw,2.8rem);
  color:var(--ink);letter-spacing:-.01em;line-height:1;}
.dj-foot-tag{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--meta);margin-top:.7rem;}
.dj-foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;margin-bottom:1.8rem;}
.dj-foot-col h3{font-family:var(--sans);font-size:.7rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--claret);margin:0 0 .8rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule);}
.dj-foot-col a{display:block;font-family:var(--serif-body);font-size:.95rem;color:var(--ink-soft);
  padding:.28rem 0;}
.dj-foot-col a:hover{color:var(--claret);text-decoration:none;}
.dj-foot-col p{font-family:var(--serif-body);font-size:.95rem;color:var(--ink-soft);line-height:1.55;}
.dj-foot-bottom{text-align:center;border-top:1px solid var(--rule);padding-top:1.3rem;
  font-family:var(--sans);font-size:.72rem;color:var(--meta);letter-spacing:.03em;}
.dj-foot-bottom a{color:var(--meta);text-decoration:underline;text-underline-offset:2px;}
.dj-foot-bottom a:hover{color:var(--claret);}
@media(max-width:760px){.dj-foot-cols{grid-template-columns:1fr 1fr;}}
@media(max-width:440px){.dj-foot-cols{grid-template-columns:1fr;}}

/* the auto-injected GPR anchor strip — align to newsprint */
body.dj .gpr-anchor{background:var(--paper-2) !important;border-top:1px solid var(--rule) !important;
  font-family:var(--sans) !important;color:var(--meta) !important;font-size:.8rem !important;}
body.dj .gpr-anchor a{color:var(--claret) !important;font-weight:600;}

/* ============================================================================
   MOTION — subtle, reduced-motion safe
   ============================================================================ */
@media(prefers-reduced-motion:no-preference){
  .dj-js .dj-reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease;}
  .dj-js .dj-reveal.is-in{opacity:1;transform:none;}
}
