/*
Theme Name: Dharma Gateway
Theme URI: https://dharmagateway.org
Description: A refined Tibetan Buddhist portal theme with travel-site clarity and strong Buddhist identity.
Version: 3.0.0
Author: Dharma Gateway
Text Domain: dharma-gateway
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
License: GPL-2.0-or-later
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root {
  --crimson:      #7c1000;
  --crimson-dark: #4a0800;
  --crimson-deep: #3a0600;
  --gold:         #edba1c;
  --gold-dark:    #b8860b;
  --gold-pale:    #FDF3DC;
  /* Aliases used in templates */
  --cr:           #7c1000;
  --ink:          #1a0f05;
  --ink-mid:      #3d2e25;
  --ink-soft:     #6b5a52;
  --muted:        #8a7e74;
  --white:        #ffffff;
  --off-white:    #faf7f2;
  --border:       #e8e0d8;
  --border-soft:  #f0ece6;
  --sans:         var(--font-family, system-ui, sans-serif);
  --serif:        Georgia, 'Times New Roman', serif;
  --pad-x:        clamp(1rem, 4vw, 2.5rem);
  --site-max:     1200px;
  --white:        #ffffff;
  --off-white:    #f5f0e8;
  --border:       #e8e0d0;
  --border-soft:  #f0ebe0;
  --ink:          #1a1a1a;
  --ink-mid:      #444444;
  --ink-soft:     #777777;
  --ink-faint:    #aaaaaa;

  --gelug:        #1a4a7a;
  --gelug-bg:     #EBF3FB;
  --kagyu:        #1a1a7a;
  --kagyu-bg:     #EEEEFB;
  --nyingma:      #7a1a1a;
  --nyingma-bg:   #FBEBEB;
  --sakya:        #4a1a7a;
  --sakya-bg:     #F3EBFB;

  --serif:   'Cormorant Garamond', Georgia, serif;
  --sans:    'Plus Jakarta Sans', 'Jost', system-ui, sans-serif;

  --site-max: 1180px;
  --pad-x:    2rem;
  --radius:   8px;
  --radius-sm: 4px;
  --nav-h:    56px;
  --shadow:   0 2px 12px rgba(0,0,0,.08);
  --shadow-hover: 0 6px 24px rgba(0,0,0,.14);
}

/* ============================================================
   RESET
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  background: var(--off-white);
  color: var(--ink);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font-family: inherit; }

/* ============================================================
   SITE WRAPPER
   ============================================================ */
#dg-site-wrap {
  max-width: var(--site-max);
  margin: 0 auto;
  background: var(--white);
  min-height: 100vh;
}

@media (min-width: 1200px) {
  #dg-site-wrap { box-shadow: 0 0 60px rgba(0,0,0,.07); }
}

/* ============================================================
   NAV
   ============================================================ */
.dg-nav-outer {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--crimson);
}

.dg-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  padding: 0 var(--pad-x);
  max-width: var(--site-max);
  margin: 0 auto;
  gap: 1rem;
}

.dg-nav__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}

.dg-nav__logo-text {
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--white);
  letter-spacing: .02em;
  display: block;
  line-height: 1.2;
}

.dg-nav__logo-sub {
  display: block;
  font-size: .58rem;
  letter-spacing: .14em;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
  font-weight: 400;
  line-height: 1;
}

.dg-nav__links {
  display: flex;
  gap: 2px;
  list-style: none;
  align-items: center;
  flex: 1;
  justify-content: center;
}

.dg-nav__links a {
  font-size: .7rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(255,255,255,.8);
  font-weight: 500;
  padding: 6px 13px;
  border-radius: var(--radius-sm);
  transition: background .15s, color .15s;
  display: block;
}

.dg-nav__links a:hover,
.dg-nav__links .current-menu-item > a {
  background: rgba(255,255,255,.15);
  color: var(--white);
}

.dg-loc-bar {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .72rem;
  color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.12);
  border-radius: 20px;
  padding: 5px 13px;
  cursor: pointer;
  transition: background .15s;
  border: none;
  font-family: var(--sans);
  flex-shrink: 0;
  white-space: nowrap;
}
.dg-loc-bar:hover { background: rgba(255,255,255,.22); }

.dg-loc-bar__pulse {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .3; }
}

.dg-nav__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 4px;
}
.dg-nav__toggle span {
  display: block; width: 20px; height: 1.5px;
  background: rgba(255,255,255,.9);
}

/* ============================================================
   HERO
   ============================================================ */
.dg-hero {
  background: var(--crimson);
  padding: 40px var(--pad-x) 0;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 2.5rem;
  align-items: end;
}

.dg-hero__eyebrow {
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: .75rem;
}

.dg-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5vw, 3.2rem);
  font-weight: 600;
  color: var(--white);
  line-height: 1.08;
  margin-bottom: 1rem;
}

.dg-hero__title em { font-style: italic; color: var(--gold); }

.dg-hero__desc {
  font-size: .88rem;
  color: rgba(255,255,255,.75);
  line-height: 1.75;
  margin-bottom: 1.75rem;
  max-width: 440px;
}

.dg-hero__btns { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 2.5rem; }

/* Search panel */
.dg-hero__search {
  background: rgba(255,255,255,.12);
  border-radius: var(--radius) var(--radius) 0 0;
  padding: 18px 20px;
  align-self: end;
}

.dg-hero__search-label {
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: 9px;
}

.dg-hero__search-row { display: flex; gap: 8px; }

.dg-hero__search-input {
  flex: 1;
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  color: var(--white);
  font-size: .82rem;
  outline: none;
  transition: border-color .15s;
}
.dg-hero__search-input::placeholder { color: rgba(255,255,255,.45); }
.dg-hero__search-input:focus { border-color: rgba(255,255,255,.6); }

.dg-hero__search-btn {
  background: var(--gold);
  color: #3a1a00;
  border: none;
  border-radius: var(--radius-sm);
  padding: 9px 18px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s;
}
.dg-hero__search-btn:hover { background: #d4a010; }

.dg-hero__search-tags {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.dg-hero__search-tags span { font-size: .62rem; color: rgba(255,255,255,.5); }
.dg-hero__search-tags a {
  font-size: .62rem;
  color: rgba(255,255,255,.8);
  text-decoration: underline;
  cursor: pointer;
}
.dg-hero__search-tags a:hover { color: var(--white); }

/* Stats bar */
.dg-hero__stats {
  background: var(--white);
  margin: 0 var(--pad-x);
  border-radius: 0 0 var(--radius) var(--radius);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1.5px solid var(--border);
  border-top: none;
  overflow: hidden;
}

.dg-hero__stat {
  padding: 14px 16px;
  text-align: center;
  border-right: 1px solid var(--border);
}
.dg-hero__stat:last-child { border-right: none; }

.dg-hero__stat-num {
  font-family: var(--serif);
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--crimson);
  line-height: 1;
  display: block;
}

.dg-hero__stat-label {
  font-size: .6rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 4px;
  font-weight: 500;
  display: block;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 22px;
  background: var(--white);
  color: var(--crimson);
  border: none;
  border-radius: var(--radius-sm);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, transform .1s;
  text-decoration: none;
  font-family: var(--sans);
}
.btn-primary:hover { background: #f5f0e8; transform: translateY(-1px); }

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 22px;
  background: transparent;
  color: var(--white);
  border: 1.5px solid rgba(255,255,255,.5);
  border-radius: var(--radius-sm);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  text-decoration: none;
  font-family: var(--sans);
}
.btn-outline:hover { border-color: rgba(255,255,255,.9); background: rgba(255,255,255,.1); }

/* Standard crimson button for non-hero contexts */
.btn-crimson {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  background: var(--crimson);
  color: var(--white);
  border: none;
  border-radius: var(--radius-sm);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, transform .1s;
  text-decoration: none;
  font-family: var(--sans);
}
.btn-crimson:hover { background: var(--crimson-dark); transform: translateY(-1px); }

/* ============================================================
   SECTIONS
   ============================================================ */
.dg-section {
  padding: 2rem var(--pad-x);
  border-bottom: 1px solid var(--border);
}

.dg-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.dg-section__title {
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 600;
  color: var(--ink);
}

.dg-section__link {
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--crimson);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .15s;
  flex-shrink: 0;
}
.dg-section__link:hover { opacity: .7; }

/* ============================================================
   LINEAGE PILLS
   ============================================================ */
.dg-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.dg-pill {
  padding: 6px 16px;
  border-radius: 20px;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .04em;
  cursor: pointer;
  transition: all .15s;
  font-family: var(--sans);
  background: var(--off-white);
  color: var(--ink-mid);
  border: 2px solid var(--border);
}
.dg-pill:hover { border-color: #bbb; }
.dg-pill.is-active { background: var(--crimson); color: var(--white); border-color: var(--crimson); }

.dg-pill--gelug  { background: var(--gelug-bg);  color: var(--gelug);  border-color: rgba(26,74,122,.2); }
.dg-pill--kagyu  { background: var(--kagyu-bg);  color: var(--kagyu);  border-color: rgba(26,26,122,.2); }
.dg-pill--nyingma { background: var(--nyingma-bg);color: var(--nyingma);border-color: rgba(122,26,26,.2); }
.dg-pill--sakya  { background: var(--sakya-bg);  color: var(--sakya);  border-color: rgba(74,26,122,.2); }

.dg-pill--gelug.is-active  { background: var(--gelug);  color: #fff; border-color: var(--gelug); }
.dg-pill--kagyu.is-active  { background: var(--kagyu);  color: #fff; border-color: var(--kagyu); }
.dg-pill--nyingma.is-active { background: var(--nyingma);color: #fff; border-color: var(--nyingma); }
.dg-pill--sakya.is-active  { background: var(--sakya);  color: #fff; border-color: var(--sakya); }

/* ============================================================
   EVENT CARDS
   ============================================================ */
/* .dg-events-grid — see v2 definition below */

.dg-event-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow .2s, transform .2s;
  text-decoration: none;
  display: block;
}
.dg-event-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-3px);
}

.dg-event-card__accent { height: 4px; }
.dg-event-card--live    .dg-event-card__accent { background: var(--crimson); }
.dg-event-card--gelug   .dg-event-card__accent { background: var(--gelug); }
.dg-event-card--kagyu   .dg-event-card__accent { background: var(--kagyu); }
.dg-event-card--nyingma .dg-event-card__accent { background: var(--nyingma); }
.dg-event-card--sakya   .dg-event-card__accent { background: var(--sakya); }

/* Default gold accent for unclassified events */
.dg-event-card .dg-event-card__accent { background: var(--gold-dark); }

.dg-event-card__body { padding: 14px; }

.dg-event-card__type {
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 5px;
  color: var(--ink-soft);
}
.dg-event-card--live    .dg-event-card__type { color: var(--crimson); }
.dg-event-card--gelug   .dg-event-card__type { color: var(--gelug); }
.dg-event-card--kagyu   .dg-event-card__type { color: var(--kagyu); }
.dg-event-card--nyingma .dg-event-card__type { color: var(--nyingma); }
.dg-event-card--sakya   .dg-event-card__type { color: var(--sakya); }

.dg-event-card__title {
  font-family: var(--serif);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 4px;
}

.dg-event-card__teacher {
  font-size: .76rem;
  color: var(--ink-mid);
  margin-bottom: 10px;
}

.dg-event-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid var(--border-soft);
}

.dg-event-card__date { font-size: .68rem; color: var(--ink-soft); }

.dg-event-card__tags { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }

/* Badges */
.dg-badge {
  font-size: .58rem;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
  letter-spacing: .04em;
  white-space: nowrap;
}
.dg-badge--live    { background: #fee2e2; color: #991b1b; }
.dg-badge--soon    { background: var(--gold-pale); color: #7a5000; }
.dg-badge--free    { background: #e8f5ee; color: #166534; }
.dg-badge--online  { background: var(--gelug-bg); color: var(--gelug); }
.dg-badge--gelug   { background: var(--gelug-bg);   color: var(--gelug); }
.dg-badge--kagyu   { background: var(--kagyu-bg);   color: var(--kagyu); }
.dg-badge--nyingma { background: var(--nyingma-bg); color: var(--nyingma); }
.dg-badge--sakya   { background: var(--sakya-bg);   color: var(--sakya); }

/* ============================================================
   LINEAGE CARDS (homepage)
   ============================================================ */
.dg-lineage-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.dg-lineage-card {
  border-radius: var(--radius);
  padding: 20px 16px;
  cursor: pointer;
  text-decoration: none;
  display: block;
  border: 1.5px solid transparent;
  transition: transform .2s, box-shadow .2s;
}
.dg-lineage-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }

.dg-lineage-card--gelug   { background: var(--gelug-bg);   border-color: rgba(26,74,122,.2); }
.dg-lineage-card--kagyu   { background: var(--kagyu-bg);   border-color: rgba(26,26,122,.2); }
.dg-lineage-card--nyingma { background: var(--nyingma-bg); border-color: rgba(122,26,26,.2); }
.dg-lineage-card--sakya   { background: var(--sakya-bg);   border-color: rgba(74,26,122,.2); }

.dg-lineage-card__dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  margin-bottom: .85rem;
  display: block;
}
.dg-lineage-card--gelug   .dg-lineage-card__dot { background: var(--gelug); }
.dg-lineage-card--kagyu   .dg-lineage-card__dot { background: var(--kagyu); }
.dg-lineage-card--nyingma .dg-lineage-card__dot { background: var(--nyingma); }
.dg-lineage-card--sakya   .dg-lineage-card__dot { background: var(--sakya); }

.dg-lineage-card__name {
  font-family: var(--serif);
  font-size: 1.3rem;
  font-weight: 600;
  margin-bottom: .4rem;
  line-height: 1.2;
}
.dg-lineage-card--gelug   .dg-lineage-card__name { color: var(--gelug); }
.dg-lineage-card--kagyu   .dg-lineage-card__name { color: var(--kagyu); }
.dg-lineage-card--nyingma .dg-lineage-card__name { color: var(--nyingma); }
.dg-lineage-card--sakya   .dg-lineage-card__name { color: var(--sakya); }

.dg-lineage-card__desc {
  font-size: .73rem;
  color: var(--ink-mid);
  line-height: 1.55;
  font-weight: 400;
  margin-bottom: .6rem;
}

.dg-lineage-card__count {
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 500;
}

/* ============================================================
   TEACHER GRID
   ============================================================ */
.dg-teachers-grid {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.dg-teacher-card {
  text-decoration: none;
  display: block;
  cursor: pointer;
  width: 90px;
  text-align: center;
  transition: opacity .2s;
}
.dg-teacher-card:hover { opacity: .72; }

.dg-teacher-card__stripe { display: none; }

.dg-teacher-card__avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  margin: 0 auto .6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--white);
  overflow: hidden;
  flex-shrink: 0;
}
.dg-teacher-card--gelug   .dg-teacher-card__avatar { background: var(--gelug); }
.dg-teacher-card--kagyu   .dg-teacher-card__avatar { background: var(--kagyu); }
.dg-teacher-card--nyingma .dg-teacher-card__avatar { background: var(--nyingma); }
.dg-teacher-card--sakya   .dg-teacher-card__avatar { background: var(--sakya); }
.dg-teacher-card .dg-teacher-card__avatar           { background: var(--crimson); }

.dg-teacher-card__avatar img { width: 100%; height: 100%; object-fit: cover; }

.dg-teacher-card__name {
  font-size: .72rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 2px;
}

.dg-teacher-card__meta {
  font-size: .6rem;
  color: var(--ink-soft);
  letter-spacing: .04em;
}

/* ============================================================
   PILGRIMAGE CARDS
   ============================================================ */
.dg-pilgrimage-list { display: flex; flex-direction: column; gap: 0; }

.dg-pilgrimage-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  cursor: pointer;
  transition: box-shadow .2s, transform .2s;
  text-decoration: none;
  margin-bottom: 10px;
}
.dg-pilgrimage-card:hover { box-shadow: var(--shadow-hover); transform: translateX(4px); }

.dg-pilgrimage-card__icon {
  background: var(--off-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  border-right: 1px solid var(--border);
}

.dg-pilgrimage-card__body { padding: 12px 16px; }

.dg-pilgrimage-card__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 4px;
}

.dg-pilgrimage-card__name {
  font-family: var(--serif);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--crimson);
}

.dg-pilgrimage-card__region {
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.dg-pilgrimage-card__desc {
  font-size: .76rem;
  color: var(--ink-mid);
  line-height: 1.55;
  margin-bottom: 8px;
}

.dg-pilgrimage-card__meta { display: flex; gap: 16px; flex-wrap: wrap; }
.dg-pilgrimage-card__meta-item { font-size: .68rem; color: var(--ink-soft); }
.dg-pilgrimage-card__meta-item strong { color: var(--gold-dark); font-weight: 600; }

/* Best time badge */
.dg-best-badge {
  background: var(--gold-pale);
  color: #7a5000;
  font-size: .58rem;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
  border: 1px solid rgba(237,186,28,.5);
  white-space: nowrap;
}

/* ============================================================
   RESOURCES GRID
   ============================================================ */
.dg-resources-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.dg-resource-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 18px;
  cursor: pointer;
  transition: box-shadow .2s, transform .2s;
  text-decoration: none;
  display: block;
}
.dg-resource-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-3px); }

.dg-resource-card__icon { font-size: 1.4rem; margin-bottom: .6rem; }

.dg-resource-card__title {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: .3rem;
}

.dg-resource-card__desc {
  font-size: .73rem;
  color: var(--ink-soft);
  line-height: 1.55;
}

/* ============================================================
   LOCATION MODAL
   ============================================================ */
.dg-loc-modal {
  position: fixed;
  inset: 0;
  background: rgba(26,18,8,.4);
  z-index: 200;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding: calc(var(--nav-h) + 8px) var(--pad-x) 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.dg-loc-modal.is-open { opacity: 1; pointer-events: all; }

.dg-loc-modal__panel {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  width: 280px;
  box-shadow: var(--shadow-hover);
}

.dg-loc-modal__title {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: .4rem;
}

.dg-loc-modal__desc {
  font-size: .73rem;
  color: var(--ink-soft);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.dg-loc-modal select {
  width: 100%;
  padding: .5rem .75rem;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--white);
  font-size: .82rem;
  color: var(--ink);
  margin-bottom: .75rem;
  cursor: pointer;
  outline: none;
}

/* ============================================================
   SINGLE EVENT
   ============================================================ */
.dg-single-event {
  max-width: 740px;
  margin: 0 auto;
  padding: 2.5rem var(--pad-x);
}

.dg-single-event__eyebrow {
  font-size: .6rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: .6rem;
}

.dg-single-event__title {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 600;
  color: var(--ink);
  line-height: 1.15;
  margin-bottom: .5rem;
}

.dg-single-event__teacher {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-style: italic;
  color: var(--gold-dark);
  margin-bottom: 1.75rem;
}

.dg-single-event__meta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 2rem;
}

.dg-single-event__meta-item {
  background: var(--off-white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
}

.dg-single-event__meta-label {
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 600;
  margin-bottom: .3rem;
}

.dg-single-event__meta-value { font-size: .85rem; color: var(--ink); }

.dg-single-event__content {
  font-size: .9rem;
  line-height: 1.85;
  color: var(--ink-mid);
  margin-bottom: 2.5rem;
}
.dg-single-event__content p { margin-bottom: 1.1em; }
.dg-single-event__content h2 {
  font-family: var(--serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ink);
  margin: 1.75em 0 .5em;
}

/* ============================================================
   FOOTER — deep maroon matching crimson family
   ============================================================ */

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 960px) {
  .dg-hero { grid-template-columns: 1fr; }
  .dg-hero__search { border-radius: var(--radius); margin-bottom: 0; }
  .dg-hero__stats { margin: 0 var(--pad-x); }
  .dg-lineage-grid { grid-template-columns: 1fr 1fr; }
  .dg-resources-grid { grid-template-columns: 1fr 1fr; }
  .dg-footer { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  :root { --pad-x: 1.1rem; }
  .dg-nav__links { display: none; }
  .dg-nav__toggle { display: flex; }
  .dg-nav__links.is-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: var(--nav-h);
    left: 0; right: 0;
    background: var(--crimson);
    padding: 1rem var(--pad-x);
    gap: .5rem;
    z-index: 99;
  }
  .dg-nav__links.is-open a { padding: 8px 12px; }
  .dg-events-grid { grid-template-columns: 1fr; }
  .dg-lineage-grid { grid-template-columns: 1fr 1fr; }
  .dg-resources-grid { grid-template-columns: 1fr; }
  .dg-footer { grid-template-columns: 1fr 1fr; }
  .dg-hero__stats { grid-template-columns: 1fr 1fr; margin: 0; border-radius: 0; }
  .dg-single-event__meta-grid { grid-template-columns: 1fr 1fr; }
  .dg-teachers-grid { grid-template-columns: repeat(3, 1fr); gap: .75rem; }
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .dg-event-card, .dg-lineage-card, .dg-pilgrimage-card,
  .dg-resource-card, .dg-teacher-card {
    animation: fadeUp .35s ease both;
  }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}

/* ============================================================
   TEACHINGS GRID
   ============================================================ */
.dg-teachings-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.dg-teaching-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}

.dg-teaching-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-3px);
}

/* Lineage top accent bar */
.dg-teaching-card--gelug   { border-top: 3px solid var(--gelug); }
.dg-teaching-card--kagyu   { border-top: 3px solid var(--kagyu); }
.dg-teaching-card--nyingma { border-top: 3px solid var(--nyingma); }
.dg-teaching-card--sakya   { border-top: 3px solid var(--sakya); }

/* Thumbnail */
.dg-teaching-card__thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--off-white);
  flex-shrink: 0;
}

.dg-teaching-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}

.dg-teaching-card:hover .dg-teaching-card__thumb img {
  transform: scale(1.04);
}

.dg-teaching-card__thumb-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--crimson);
  opacity: .08;
}

/* Play / media icon overlay */
.dg-teaching-card__media-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,.55);
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  opacity: 0;
  transition: opacity .2s;
}

.dg-teaching-card:hover .dg-teaching-card__media-icon {
  opacity: 1;
}

/* Duration badge */
.dg-teaching-card__duration {
  position: absolute;
  bottom: 6px;
  right: 8px;
  background: rgba(0,0,0,.72);
  color: #fff;
  font-size: .62rem;
  padding: 2px 7px;
  border-radius: 3px;
  font-weight: 500;
  letter-spacing: .03em;
}

/* Card body */
.dg-teaching-card__body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
}

.dg-teaching-card__lineage {
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dg-teaching-card__lineage--gelug   { color: var(--gelug); }
.dg-teaching-card__lineage--kagyu   { color: var(--kagyu); }
.dg-teaching-card__lineage--nyingma { color: var(--nyingma); }
.dg-teaching-card__lineage--sakya   { color: var(--sakya); }

.dg-teaching-card__title {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
}

.dg-teaching-card__teacher {
  font-size: .73rem;
  color: var(--ink-mid);
}

.dg-teaching-card__topics {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 2px;
}

.dg-teaching-card__topic {
  font-size: .6rem;
  padding: 2px 7px;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--ink-soft);
  font-weight: 500;
}

/* Difficulty badges */
.dg-badge--difficulty { margin-top: 4px; }
.dg-badge--beginner     { background: #e8f5ee; color: #166534; }
.dg-badge--intermediate { background: var(--off-white); color: var(--ink-soft); border: 1px solid var(--border); }
.dg-badge--advanced     { background: #fef3c7; color: #92400e; }

/* ── Responsive ── */
@media (max-width: 960px) {
  .dg-teachings-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .dg-teachings-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   READ MORE LINK
   WordPress .more-link and custom .dg-read-more
   ============================================================ */

/* The anchor WordPress inserts before the "more" content on single posts */
.more-link-wrapper,
span.more-link,
a.more-link,
.dg-read-more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--crimson);
  text-decoration: none;
  border-bottom: 1.5px solid var(--crimson);
  padding-bottom: 1px;
  margin-top: .5rem;
  transition: opacity .15s;
  font-family: var(--sans);
  cursor: pointer;
}

a.more-link:hover,
.dg-read-more:hover {
  opacity: .7;
}

/* Append arrow */
a.more-link::after,
.dg-read-more::after {
  content: '→';
  font-size: .8em;
}

/* Content area styles - ensure paragraphs and headings 
   inside post content are properly formatted */
.dg-single-event__content p,
.dg-single-event__content li {
  margin-bottom: 1em;
  line-height: 1.85;
}

.dg-single-event__content ul,
.dg-single-event__content ol {
  padding-left: 1.5rem;
  margin-bottom: 1em;
}

.dg-single-event__content blockquote {
  border-left: 3px solid var(--gold-dark);
  padding-left: 1rem;
  margin: 1.25rem 0;
  color: var(--ink-mid);
  font-style: italic;
}

.dg-single-event__content a {
  color: var(--crimson);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ============================================================
   TEACHER LINK — clickable name on cards
   ============================================================ */
.dg-teacher-link {
  color: var(--gold-dark, #b8860b);
  text-decoration: none;
  font-style: italic;
  transition: opacity .15s;
}

.dg-teacher-link:hover {
  opacity: .75;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ============================================================
   TEACHER PROFILE PAGE
   ============================================================ */

/* Hero */
.dg-teacher-hero {
	background: var(--soft);
	border-bottom: 1px solid var(--border);
	padding: 2.5rem var(--pad-x) 2rem;
}

.dg-teacher-hero__inner {
	max-width: 900px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 130px 1fr auto;
	gap: 2rem;
	align-items: start;
}

/* Photo */
.dg-teacher-hero__photo {
	width: 130px;
	height: 130px;
	border-radius: 50%;
	border: 3px solid var(--gold);
	overflow: hidden;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 2px 12px rgba(0,0,0,.1);
}

.dg-teacher-hero__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Stats column */
.dg-teacher-hero__stats {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding-left: 2rem;
	border-left: 1px solid var(--border);
	min-width: 130px;
}

.dg-teacher-stat {
	display: flex;
	flex-direction: column;
	gap: .2rem;
}

.dg-teacher-stat__num {
	font-size: 2rem;
	font-weight: 700;
	font-family: var(--font-serif);
	line-height: 1;
	color: var(--cr);
}

.dg-teacher-stat__label {
	font-size: .65rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--muted);
	font-weight: 500;
}

/* Body */
.dg-teacher-body {
	max-width: 900px;
	margin: 0 auto;
	padding: 2rem var(--pad-x) 3rem;
}

.dg-teacher-section {
	margin-bottom: 2.5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--border);
}

.dg-teacher-section:last-of-type {
	border-bottom: none;
}

.dg-section-heading {
	font-family: var(--font-serif);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--ink);
	margin: 0 0 1rem;
}

/* Biography text */
.dg-teacher-bio {
	font-size: .92rem;
	line-height: 1.85;
	color: var(--ink);
	max-width: 680px;
}

.dg-teacher-bio p { margin-bottom: 1em; }
.dg-teacher-bio p:last-child { margin-bottom: 0; }

/* Responsive */
@media (max-width: 680px) {
	.dg-teacher-hero__inner {
		grid-template-columns: 90px 1fr;
		grid-template-rows: auto auto;
		gap: 1.25rem;
	}

	.dg-teacher-hero__stats {
		grid-column: 1 / -1;
		flex-direction: row;
		border-left: none;
		border-top: 1px solid var(--border);
		padding-left: 0;
		padding-top: 1.25rem;
		min-width: unset;
	}

	.dg-teacher-stat { flex: 1; }

	.dg-teacher-hero__photo {
		width: 90px;
		height: 90px;
	}
}

/* ============================================================
   SCHEDULE PREVIEW — live fetch from official schedule page
   ============================================================ */
.dg-schedule-preview__note {
	font-size: .72rem;
	color: var(--muted);
	margin-bottom: .75rem;
}

.dg-schedule-preview__list {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.dg-schedule-item {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: .35rem 1rem;
	padding: .75rem 1rem;
	border: 1px solid var(--border);
	border-radius: 8px;
	text-decoration: none;
	background: var(--bg);
	transition: border-color .15s, background .15s;
	align-items: start;
}

.dg-schedule-item:hover {
	border-color: var(--cr);
	background: var(--soft);
}

.dg-schedule-item__date {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	line-height: 1.4;
	grid-row: span 2;
	padding-top: 2px;
}

.dg-schedule-item__title {
	font-size: .88rem;
	font-weight: 600;
	color: var(--ink);
	line-height: 1.35;
}

.dg-schedule-item__location {
	font-size: .72rem;
	color: var(--muted);
}

/* ============================================================
   EVENT TIMELINE LIST — teacher profile page
   ============================================================ */
.dg-event-list {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
}

.dg-event-list__month {
  padding: 5px 16px 4px;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: var(--off-white);
}

.dg-event-list__month + .dg-event-row,
.dg-event-list__month:not(:first-child) {
  border-top: 1px solid var(--border);
}

.dg-event-row {
  display: grid;
  grid-template-columns: 72px 1fr 32px;
  text-decoration: none;
  background: var(--white);
  transition: background .12s;
  align-items: stretch;
  border-top: 1px solid var(--border-soft);
}

.dg-event-row:first-child { border-top: none; }
.dg-event-row:last-child  { border-bottom: none; }
.dg-event-row:hover       { background: var(--gold-pale); }

.dg-event-row__date {
  padding: 16px 8px 16px 14px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  border-right: 1px solid var(--border-soft);
  flex-shrink: 0;
}

.dg-event-row__day {
  font-size: 1.7rem;
  font-family: var(--serif);
  font-weight: 700;
  line-height: .95;
  /* colour set inline from lineage */
}

.dg-event-row__mon {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-top: 3px;
  /* colour inherited */
}

.dg-event-row__yr {
  font-size: .58rem;
  color: var(--ink-faint);
  margin-top: 1px;
}

.dg-event-row__date-range {
  font-size: .62rem;
  font-weight: 600;
  line-height: 1.45;
  writing-mode: horizontal-tb;
}

.dg-event-row__body {
  padding: 13px 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}

.dg-event-row__title {
  font-size: .92rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
}

.dg-event-row__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 1px;
}

.dg-event-row__loc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: .72rem;
  color: var(--ink-soft);
}

.dg-event-badge {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 2px 7px;
  border-radius: 20px;
  text-transform: uppercase;
}

.dg-event-badge--online   { background: var(--kagyu-bg);   color: var(--kagyu); }
.dg-event-badge--inperson { background: var(--off-white);   color: var(--ink-mid); border: 1px solid var(--border); }
.dg-event-badge--free     { background: #eaf3de;            color: #3b6d11; }

.dg-event-row__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-faint);
  font-size: 1rem;
  transition: color .12s, transform .12s;
}

.dg-event-row:hover .dg-event-row__arrow {
  color: var(--crimson);
  transform: translateX(2px);
}

@media (max-width: 480px) {
  .dg-event-row { grid-template-columns: 58px 1fr 24px; }
  .dg-event-row__day  { font-size: 1.4rem; }
  .dg-event-row__body { padding: 11px 12px; }
}

/* ============================================================
   EVENT CARD v2 — homepage & archives
   ============================================================ */
.dg-event-card--v2 {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex !important;
  flex-direction: column;
  text-decoration: none;
  transition: box-shadow .18s, transform .18s;
  cursor: pointer;
  min-height: 160px;
}

.dg-event-card--v2:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,.1);
  transform: translateY(-3px);
}

/* Top section */
.dg-event-card__top {
  padding: 16px 16px 14px;
  border-top: 3px solid var(--gold-dark); /* overridden inline */
  flex: 1;
}

.dg-event-card__date-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}

.dg-event-card__date-block {
  display: flex;
  flex-direction: column;
}

.dg-event-card__day {
  font-size: 2.4rem;
  font-family: var(--serif);
  font-weight: 700;
  font-style: normal;
  line-height: .88;
  color: var(--gold-dark); /* overridden inline */
}

.dg-event-card__month-yr {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-top: 4px;
  opacity: .8;
}

.dg-event-card__range {
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 2px;
}

/* Lineage pill */
.dg-event-card__lineage-pill {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 20px;
}

.dg-event-card__lineage-pill--gelug   { background: var(--gelug-bg);   color: var(--gelug); }
.dg-event-card__lineage-pill--kagyu   { background: var(--kagyu-bg);   color: var(--kagyu); }
.dg-event-card__lineage-pill--nyingma { background: var(--nyingma-bg); color: var(--nyingma); }
.dg-event-card__lineage-pill--sakya   { background: var(--sakya-bg);   color: var(--sakya); }

/* Live pulse dot */
.dg-event-card__live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--crimson);
  animation: dg-pulse 1.6s ease-in-out infinite;
}

@keyframes dg-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .4; transform: scale(1.35); }
}

/* Title & teacher */
.dg-event-card__title {
  font-family: var(--serif);
  font-size: .98rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dg-event-card__teacher {
  font-size: .76rem;
  color: var(--ink-mid);
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Footer */
.dg-event-card__footer-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 16px 10px;
  border-top: 1px solid var(--border-soft);
  background: var(--off-white);
  gap: 6px;
}

.dg-event-card__loc {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  color: var(--ink-soft);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dg-event-card__badges-v2 {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

.dg-ec-badge {
  font-size: .57rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 20px;
  white-space: nowrap;
}

.dg-ec-badge--live   { background: #fee2e2; color: #991b1b; }
.dg-ec-badge--online { background: var(--kagyu-bg); color: var(--kagyu); }
.dg-ec-badge--free   { background: #eaf3de; color: #3b6d11; }

/* Grid: 3 cols on desktop, 2 on tablet, 1 on mobile */
.dg-events-grid {
  display: flex;
  flex-direction: column;
  gap: 1px;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--border);
}

/* ============================================================
   EVENT DETAIL PAGE v2
   ============================================================ */

/* Hero */
.dg-event-hero {
	background: var(--off-white);
	border-bottom: 1px solid var(--border);
	padding: 2.5rem var(--pad-x) 2rem;
}

.dg-event-hero__inner {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 2.5rem;
	align-items: start;
}

/* Big date block */
.dg-event-hero__date-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-top: 2.4rem; /* align with title */
}

.dg-event-hero__day {
	font-family: var(--serif);
	font-size: 4.5rem;
	font-weight: 700;
	line-height: .85;
	display: block;
}

.dg-event-hero__month {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	display: block;
	margin-top: 6px;
	opacity: .75;
}

.dg-event-hero__year {
	font-size: .65rem;
	opacity: .5;
	display: block;
	margin-top: 2px;
}

/* Title */
.dg-event-hero__title {
	font-family: var(--serif);
	font-size: clamp(1.7rem, 4vw, 2.6rem);
	font-weight: 700;
	color: var(--ink);
	line-height: 1.15;
	margin: 0 0 .5rem;
}

.dg-event-hero__teacher {
	font-size: 1rem;
	font-style: italic;
	color: var(--gold-dark);
	margin-bottom: 1.25rem;
}

.dg-event-hero__teacher-link {
	color: var(--gold-dark);
	text-decoration: none;
}
.dg-event-hero__teacher-link:hover { text-decoration: underline; }

/* CTA button */
.dg-event-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--crimson);
	color: #fff;
	border: 2px solid var(--crimson);
	border-radius: 8px;
	padding: 11px 22px;
	font-size: .88rem;
	font-weight: 700;
	text-decoration: none;
	transition: opacity .15s, transform .15s;
	letter-spacing: .01em;
}

.dg-event-cta:hover { opacity: .88; transform: translateY(-1px); }
.dg-event-cta--outline { background: transparent; color: var(--ink); border-color: var(--border); }
.dg-event-cta--outline:hover { border-color: var(--crimson); color: var(--crimson); }
.dg-event-cta--full { display: flex; justify-content: center; width: 100%; margin: 0 0 1.5rem; }

/* Body layout */
.dg-event-body {
	max-width: 860px;
	margin: 0 auto;
	padding: 2rem var(--pad-x) 3rem;
}

.dg-event-body__main {
	max-width: 640px;
}

/* Details card */
.dg-event-details-card {
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 1.5rem;
	background: var(--white);
}

.dg-event-detail {
	display: flex;
	gap: 14px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--border-soft);
	align-items: flex-start;
}

.dg-event-detail:last-child { border-bottom: none; }

.dg-event-detail__icon {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: var(--off-white);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: var(--ink-soft);
	margin-top: 1px;
}

.dg-event-detail__label {
	font-size: .6rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ink-soft);
	margin-bottom: 3px;
}

.dg-event-detail__value {
	font-size: .9rem;
	font-weight: 600;
	color: var(--ink);
	line-height: 1.35;
}

.dg-event-detail__sub {
	font-size: .78rem;
	color: var(--ink-mid);
	margin-top: 2px;
}

/* Content */
.dg-event-content {
	font-size: .92rem;
	line-height: 1.85;
	color: var(--ink-mid);
	margin-bottom: 2rem;
}
.dg-event-content p { margin-bottom: 1.1em; }
.dg-event-content p:last-child { margin-bottom: 0; }
.dg-event-content h2 {
	font-family: var(--serif);
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--ink);
	margin: 1.5em 0 .5em;
}

/* Responsive */
@media (max-width: 600px) {
	.dg-event-hero__inner {
		grid-template-columns: 80px 1fr;
		gap: 1.25rem;
	}
	.dg-event-hero__day   { font-size: 3.2rem; }
	.dg-event-hero__title { font-size: 1.6rem; }
	.dg-event-hero__date-block { padding-top: 2rem; }
}

@media (max-width: 400px) {
	.dg-event-hero__inner {
		grid-template-columns: 1fr;
	}
	.dg-event-hero__date-block {
		flex-direction: row;
		align-items: baseline;
		gap: .5rem;
		padding-top: 0;
	}
	.dg-event-hero__day   { font-size: 2rem; }
	.dg-event-hero__month { font-size: .7rem; margin-top: 0; }
	.dg-event-hero__year  { margin-top: 0; }
}

/* ============================================================
   EVENT ROW — compact list (Style A)
   ============================================================ */
.dg-erow {
  display: grid;
  grid-template-columns: 52px 4px 1fr auto;
  align-items: center;
  gap: 14px;
  background: var(--white);
  padding: 13px 16px;
  text-decoration: none;
  transition: background .12s;
}

.dg-erow:hover { background: var(--gold-pale); }

/* Date */
.dg-erow__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.dg-erow__day {
  font-size: 1.55rem;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  font-family: var(--serif);
}

.dg-erow__mon {
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .7;
  margin-top: 3px;
}

/* Colour bar */
.dg-erow__bar {
  width: 4px;
  height: 38px;
  border-radius: 2px;
  background: var(--gold-dark);
  flex-shrink: 0;
}

/* Body */
.dg-erow__body {
  min-width: 0;
}

.dg-erow__title {
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
  margin-bottom: 3px;
}

.dg-erow__meta {
  font-size: .72rem;
  color: var(--ink-soft);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.dg-erow__dot {
  opacity: .4;
}

.dg-erow__teacher {
  color: var(--gold-dark);
  text-decoration: none;
  font-style: italic;
}

.dg-erow__teacher:hover {
  text-decoration: underline;
}

/* Badges */
.dg-erow__badges {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex-shrink: 0;
  align-items: flex-end;
}

.dg-erow__badge {
  font-size: .57rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 20px;
  white-space: nowrap;
}

.dg-erow__badge--free   { background: #eaf3de; color: #3b6d11; }
.dg-erow__badge--online { background: var(--kagyu-bg); color: var(--kagyu); }
.dg-erow__badge--live   { background: #fee2e2; color: #991b1b; }

/* Live pulse */
.dg-erow--live .dg-erow__bar {
  animation: dg-bar-pulse 1.6s ease-in-out infinite;
}

@keyframes dg-bar-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}

/* Mobile */
@media (max-width: 480px) {
  .dg-erow { grid-template-columns: 44px 3px 1fr auto; gap: 10px; padding: 11px 13px; }
  .dg-erow__day { font-size: 1.3rem; }
  .dg-erow__title { font-size: .84rem; }
}

/* ============================================================
   EVENT ROW (dg-erow) — homepage, teacher profiles, lineage pages
   Clean rewrite — no conflicts with old card styles
   ============================================================ */

.dg-event-list {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
}

.dg-event-list__month {
  padding: 4px 16px;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: var(--off-white);
  border-bottom: 1px solid var(--border-soft);
}

.dg-event-list__month + .dg-erow {
  border-top: none;
}

/* The row itself — 3 fixed columns, no flex on children */
.dg-erow {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  text-decoration: none;
  background: var(--white);
  border-top: 1px solid var(--border-soft);
  transition: background .1s;
  min-height: 56px;
}

.dg-erow:first-child { border-top: none; }
.dg-erow:hover { background: var(--gold-pale); }

/* Date column — fixed 60px, left accent bar */
.dg-erow__date {
  padding: 13px 10px 13px 14px;
  border-left: 3px solid var(--gold-dark);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1px;
  flex-shrink: 0;
  width: 60px;
}

.dg-erow__day {
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  display: block;
}

.dg-erow__mon {
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  display: block;
  opacity: .75;
}

.dg-erow__yr {
  font-size: .52rem;
  color: var(--ink-faint);
  display: block;
}

.dg-erow__range {
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.3;
  display: block;
}

/* Body — fills remaining space, constrained */
.dg-erow__body {
  padding: 12px 14px;
  min-width: 0; /* critical — prevents overflow */
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
}

.dg-erow__title {
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
  /* Clamp to 2 lines */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dg-erow__sub {
  font-size: .7rem;
  color: var(--ink-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  min-width: 0;
}

.dg-erow__dot {
  color: var(--ink-faint);
}

/* Badges column — fixed width, right-aligned */
.dg-erow__badges {
  padding: 12px 14px 12px 8px;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.dg-erow__badge {
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 20px;
  white-space: nowrap;
}

.dg-erow__badge--free   { background: #eaf3de; color: #3b6d11; }
.dg-erow__badge--online { background: var(--kagyu-bg); color: var(--kagyu); }

/* Responsive */
@media (max-width: 480px) {
  .dg-erow { grid-template-columns: 50px 1fr auto; }
  .dg-erow__date { padding-left: 10px; width: 50px; }
  .dg-erow__day  { font-size: 1.2rem; }
}

/* ============================================================
   PILGRIMAGE ARCHIVE GRID
   ============================================================ */
.dg-pil-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.dg-pil-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  background: var(--white);
  display: flex;
  flex-direction: column;
  transition: box-shadow .18s, transform .18s;
}

.dg-pil-card:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,.1);
  transform: translateY(-3px);
}

.dg-pil-card__header {
  height: 150px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}

.dg-pil-card__art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dg-pil-card__photo {
  position: absolute;
  inset: 0;
}

.dg-pil-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .5;
  mix-blend-mode: multiply;
}

.dg-pil-card__icon {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 3rem;
  opacity: .25;
}

.dg-pil-card__overlay {
  position: absolute;
  inset: 0;
}

.dg-pil-card__body {
  padding: 14px 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.dg-pil-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.dg-pil-card__title {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
  margin: 0;
}

.dg-pil-card__country {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 20px;
  background: var(--gold-pale);
  color: var(--gold-dark);
  border: 1px solid var(--border);
  white-space: nowrap;
  flex-shrink: 0;
}

.dg-pil-card__region {
  font-size: .7rem;
  color: var(--ink-soft);
}

.dg-pil-card__excerpt {
  font-size: .78rem;
  color: var(--ink-mid);
  line-height: 1.55;
  margin: 2px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.dg-pil-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px solid var(--border-soft);
}

.dg-pil-card__meta-item {
  font-size: .65rem;
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  gap: 4px;
}

.dg-pil-card__good-now {
  font-size: .62rem;
  font-weight: 700;
  color: #3b6d11;
  background: #eaf3de;
  padding: 2px 7px;
  border-radius: 20px;
}

/* Single page content */
.dg-pil-content {
  font-size: .92rem;
  line-height: 1.85;
  color: var(--ink-mid);
}

.dg-pil-content p { margin-bottom: 1.1em; }
.dg-pil-content p:last-child { margin-bottom: 0; }

/* Responsive */
@media (max-width: 860px) {
  .dg-pil-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
  .dg-pil-grid { grid-template-columns: 1fr; }
}

@media (max-width: 660px) {
  /* Single page: stack sidebar below content */
  .dg-pil-body-grid { grid-template-columns: 1fr !important; }
}

/* ============================================================
   PILGRIMAGE SINGLE PAGE — rich layout
   ============================================================ */

/* Hero */
.dg-pil-hero {
  position: relative;
  height: 300px;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 0;
}

/* SVG art layer — fills the entire hero */
.dg-pil-hero__art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Photo layer — semi-transparent on top of art so art shows through edges */
.dg-pil-hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dg-pil-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .55; /* let art bleed through */
  mix-blend-mode: multiply;
}

/* Large icon when no photo */
.dg-pil-hero__icon {
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 5.5rem;
  line-height: 1;
  opacity: .2;
}

.dg-pil-hero__overlay {
  position: absolute;
  inset: 0;
}

.dg-pil-hero__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 1.5rem 1.5rem;
  z-index: 2;
}

.dg-pil-hero__title {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  margin-bottom: .3rem;
  text-shadow: 0 1px 8px rgba(0,0,0,.4);
}

.dg-pil-hero__region {
  font-size: .72rem;
  color: rgba(255,255,255,.75);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dg-pil-badge {
  font-size: .62rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 20px;
  background: rgba(255,255,255,.18);
  color: #fff;
  border: 1px solid rgba(255,255,255,.2);
}

.dg-pil-badge--good {
  background: rgba(59,109,17,.85);
  border-color: rgba(59,109,17,.5);
  color: #fff;
}

/* Stats bar */
.dg-pil-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 10px 10px;
  overflow: hidden;
  margin-bottom: 1.75rem;
  background: var(--white);
}

.dg-pil-stat {
  padding: 12px 16px;
  border-right: 1px solid var(--border-soft);
}

.dg-pil-stat:last-child { border-right: none; }

.dg-pil-stat__label {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 4px;
}

.dg-pil-stat__value {
  font-size: .85rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
}

.dg-pil-stat__value--good { color: #3b6d11; }

/* 2-col body */
.dg-pil-body {
  display: grid;
  grid-template-columns: 1fr 270px;
  gap: 2rem;
  align-items: start;
}

.dg-pil-main { min-width: 0; }

/* Section */
.dg-pil-section {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--border-soft);
}

.dg-pil-section:last-of-type { border-bottom: none; }

.dg-pil-section__title {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 1rem;
}

.dg-pil-content {
  font-size: .91rem;
  line-height: 1.85;
  color: var(--ink-mid);
}

.dg-pil-content p { margin-bottom: 1em; }
.dg-pil-content p:last-child { margin-bottom: 0; }

.dg-pil-infobox {
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .85rem 1rem;
  font-size: .84rem;
  color: var(--ink-mid);
  line-height: 1.6;
}

/* Season blocks */
.dg-pil-seasons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.dg-pil-season {
  border-radius: 8px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  background: var(--off-white);
}

.dg-pil-season--best {
  background: #eaf3de;
  border-color: #3b6d11;
}

.dg-pil-season--avoid {
  background: #fee2e2;
  border-color: #991b1b;
}

.dg-pil-season--current {
  box-shadow: 0 0 0 2px var(--gold-dark);
}

.dg-pil-season__name {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.dg-pil-season--best  .dg-pil-season__name { color: #3b6d11; }
.dg-pil-season--avoid .dg-pil-season__name { color: #991b1b; }
.dg-pil-season--ok    .dg-pil-season__name { color: var(--ink-soft); }

.dg-pil-season__temp {
  font-size: .72rem;
  color: var(--ink-soft);
  margin-bottom: 4px;
}

.dg-pil-season__tag {
  font-size: .62rem;
  font-weight: 600;
}

.dg-pil-season--best  .dg-pil-season__tag { color: #3b6d11; }
.dg-pil-season--avoid .dg-pil-season__tag { color: #991b1b; }
.dg-pil-season--ok    .dg-pil-season__tag { color: var(--ink-soft); }

/* Steps */
.dg-pil-steps {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dg-pil-step {
  display: flex;
  gap: 12px;
  padding: 11px 14px;
  background: var(--off-white);
  border-radius: 8px;
  align-items: flex-start;
}

.dg-pil-step__num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ink-mid);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .68rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

.dg-pil-step__text {
  font-size: .84rem;
  color: var(--ink-mid);
  line-height: 1.55;
}

/* Nearby grid */
.dg-pil-nearby {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.dg-pil-nearby__item {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 13px;
  text-decoration: none;
  background: var(--white);
  transition: border-color .12s, background .12s;
}

.dg-pil-nearby__item--link:hover {
  border-color: var(--cr);
  background: var(--gold-pale);
}

.dg-pil-nearby__name {
  font-size: .84rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 2px;
}

.dg-pil-nearby__meta {
  font-size: .7rem;
  color: var(--ink-soft);
  line-height: 1.4;
}

/* Sidebar */
.dg-pil-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: sticky;
  top: 80px;
}

.dg-pil-info-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
}

.dg-pil-info-card__header {
  padding: 9px 14px;
  background: var(--ink);
  color: rgba(255,255,255,.9);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dg-pil-info-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 9px 14px;
  border-bottom: 1px solid var(--border-soft);
  gap: 10px;
}

.dg-pil-info-row:last-child { border-bottom: none; }

.dg-pil-info-row__label {
  font-size: .65rem;
  color: var(--ink-soft);
  flex-shrink: 0;
  padding-top: 1px;
  min-width: 70px;
}

.dg-pil-info-row__val {
  font-size: .72rem;
  color: var(--ink);
  text-align: right;
  line-height: 1.45;
}

/* Alerts */
.dg-pil-alert {
  border-radius: 8px;
  padding: 10px 13px;
  font-size: .78rem;
  line-height: 1.55;
}

.dg-pil-alert--warning {
  background: var(--gold-pale);
  border: 1px solid var(--gold-dark);
  color: var(--ink-mid);
}

.dg-pil-alert--info {
  background: var(--kagyu-bg);
  border: 1px solid var(--kagyu);
  color: var(--ink-mid);
}

.dg-pil-alert__title {
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
}

.dg-pil-alert__body { font-size: .75rem; }

/* Responsive */
@media (max-width: 720px) {
  .dg-pil-body { grid-template-columns: 1fr; }
  .dg-pil-sidebar { position: static; }
  .dg-pil-stats { grid-template-columns: 1fr 1fr; }
  .dg-pil-seasons { grid-template-columns: 1fr 1fr; }
  .dg-pil-hero { height: 220px; }
}

@media (max-width: 440px) {
  .dg-pil-nearby { grid-template-columns: 1fr; }
  .dg-pil-stats { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.dg-faq {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}

.dg-faq__item {
  border-bottom: 1px solid var(--border-soft);
}

.dg-faq__item:last-child { border-bottom: none; }

.dg-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background .1s;
}

.dg-faq__q::-webkit-details-marker { display: none; }

.dg-faq__item[open] .dg-faq__q {
  background: var(--gold-pale);
  color: var(--cr);
}

.dg-faq__item[open] .dg-faq__q .dg-faq__chevron {
  transform: rotate(180deg);
}

.dg-faq__chevron {
  flex-shrink: 0;
  color: var(--ink-soft);
  transition: transform .2s;
}

.dg-faq__a {
  padding: 0 16px 14px;
  font-size: .84rem;
  line-height: 1.75;
  color: var(--ink-mid);
  background: var(--gold-pale);
}

/* ============================================================
   REVIEWS
   ============================================================ */
.dg-reviews-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.dg-reviews-avg {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dg-reviews-avg__num {
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--gold-dark);
  line-height: 1;
}

.dg-reviews-avg__stars {
  font-size: 1.1rem;
  letter-spacing: 1px;
}

.dg-reviews {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.dg-review {
  padding: 16px 18px;
  border-bottom: 1px solid var(--border-soft);
  background: var(--white);
}

.dg-review:last-child { border-bottom: none; }

.dg-review__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.dg-review__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--cr);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 700;
  flex-shrink: 0;
}

.dg-review__meta { flex: 1; min-width: 0; }

.dg-review__author {
  font-size: .84rem;
  font-weight: 600;
  color: var(--ink);
}

.dg-review__date {
  font-size: .68rem;
  color: var(--muted);
}

.dg-review__stars {
  font-size: 1rem;
  letter-spacing: 1px;
  flex-shrink: 0;
}

.dg-review__body {
  font-size: .84rem;
  line-height: 1.7;
  color: var(--ink-mid);
}

/* ============================================================
   STAR PICKER (RTL trick — stars highlight on hover)
   ============================================================ */
.dg-review-form {
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
}

.dg-review-form__title {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 1.25rem;
}

/* The star picker uses a right-to-left flexbox trick
   so hovering a star highlights it AND all stars to its left */
.dg-star-picker {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 2px;
  margin-bottom: 4px;
}

.dg-star-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.dg-star-lbl {
  font-size: 2rem;
  color: var(--border);
  cursor: pointer;
  transition: color .1s;
  line-height: 1;
}

/* Hover: highlight hovered star and all to its left (visually right in RTL flex) */
.dg-star-lbl:hover,
.dg-star-lbl:hover ~ .dg-star-lbl {
  color: var(--gold-dark);
}

/* Selected state */
.dg-star-input:checked ~ .dg-star-lbl {
  color: var(--gold-dark);
}

.dg-star-labels {
  display: flex;
  justify-content: space-between;
  font-size: .58rem;
  color: var(--muted);
  letter-spacing: .04em;
  max-width: 168px; /* matches 5 × 2rem stars + gaps */
  margin-bottom: .75rem;
}

/* Style the WP comment form fields */
.dg-review-form__form .comment-form-author,
.dg-review-form__form .comment-form-email,
.dg-review-form__form .comment-form-url {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  margin-bottom: 1rem;
}

.dg-review-form__form label {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .35rem;
}

.dg-review-form__form input[type=text],
.dg-review-form__form input[type=email],
.dg-review-form__form input[type=url],
.dg-review-form__form textarea {
  width: 100%;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: .85rem;
  font-family: var(--sans);
  background: var(--white);
  color: var(--ink);
  transition: border-color .15s;
}

.dg-review-form__form input:focus,
.dg-review-form__form textarea:focus {
  outline: none;
  border-color: var(--gold-dark);
}

.dg-review-form__btn {
  background: var(--cr);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 11px 24px;
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 1rem;
  transition: opacity .15s;
}

.dg-review-form__btn:hover { opacity: .88; }

/* Review form — two-column name/email row and note */
.dg-review-form__note {
  font-size: .78rem;
  color: var(--muted);
  margin: -.5rem 0 1.25rem;
  line-height: 1.55;
}

.dg-review-form__loggedin {
  font-size: .78rem;
  color: var(--muted);
  margin-bottom: 1rem;
}

.dg-review-form__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 1rem;
}

.dg-review-form__fields label {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .35rem;
}

.dg-review-form__fields input {
  width: 100%;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: .85rem;
  font-family: var(--sans);
  background: var(--white);
  color: var(--ink);
}

.dg-review-form__fields input:focus {
  outline: none;
  border-color: var(--gold-dark);
}

/* Moderation notice shown after submit */
.comment-awaiting-moderation {
  font-size: .78rem;
  color: #3b6d11;
  background: #eaf3de;
  border: 1px solid #3b6d11;
  border-radius: 8px;
  padding: .75rem 1rem;
  margin-top: 1rem;
}

@media (max-width: 480px) {
  .dg-review-form__fields { grid-template-columns: 1fr; }
}

/* ============================================================
   PILGRIMAGE ARCHIVE — map, planner, circuits
   ============================================================ */

.dg-pil-archive-section {
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--border);
}
.dg-pil-archive-section:last-child { border-bottom: none; }

.dg-pil-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  gap: 1rem;
}

.dg-pil-archive-title {
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 .25rem;
}

.dg-pil-archive-sub {
  font-size: .8rem;
  color: var(--muted);
  margin: 0;
}

/* ── Map ── */
.dg-map-wrap {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  display: flex;
}

#dg-pilgrim-map {
  height: 460px;
  flex: 1;
  z-index: 0;
}

.dg-map-panel {
  width: 260px;
  flex-shrink: 0;
  border-left: 1px solid var(--border);
  background: var(--white);
  padding: 1.25rem;
  overflow-y: auto;
  transition: width .2s, opacity .2s;
}

.dg-map-panel--hidden {
  width: 0;
  padding: 0;
  opacity: 0;
  overflow: hidden;
  border: none;
}

.dg-map-panel__close {
  float: right;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1;
  padding: 0;
  margin-bottom: .5rem;
}

.dg-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.dg-map-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .72rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink-mid);
  cursor: pointer;
  transition: all .12s;
}

.dg-map-filter.is-active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.dg-map-filter__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Month picker ── */
.dg-month-picker {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
  margin-bottom: 1.25rem;
}

.dg-month-btn {
  padding: 7px 4px;
  font-size: .72rem;
  font-weight: 600;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink-mid);
  cursor: pointer;
  text-align: center;
  transition: all .12s;
}

.dg-month-btn.is-active {
  background: var(--cr);
  color: #fff;
  border-color: var(--cr);
}

.dg-month-btn:hover:not(.is-active) {
  border-color: var(--cr);
  color: var(--cr);
}

/* ── Season grid ── */
.dg-season-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.dg-season-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  text-decoration: none;
  background: var(--white);
  transition: border-color .12s, background .12s;
}

.dg-season-card:hover { border-color: var(--gold-dark); background: var(--gold-pale); }

.dg-season-card[data-rating="best"] { border-color: #3b6d11; background: #eaf3de; }
.dg-season-card[data-rating="avoid"] { opacity: .45; }

.dg-season-card__icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.dg-season-card__name {
  font-size: .78rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.2;
}

.dg-season-card__region {
  font-size: .65rem;
  color: var(--muted);
}

.dg-season-card__rating {
  font-size: .65rem;
  font-weight: 600;
  margin-top: 2px;
}

.dg-season-card__rating[data-rating="best"]  { color: #3b6d11; }
.dg-season-card__rating[data-rating="avoid"] { color: #991b1b; }
.dg-season-card__rating[data-rating="ok"]    { color: var(--muted); }

/* ── Circuit routes ── */
.dg-circuits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.dg-circuit {
  border: 1px solid var(--border);
  border-left: 4px solid var(--cr);
  border-radius: 0 10px 10px 0;
  background: var(--white);
  padding: 1.1rem 1.25rem;
}

.dg-circuit__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
}

.dg-circuit__name {
  font-size: .92rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .25rem;
}

.dg-circuit__desc {
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.5;
}

.dg-circuit__duration {
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}

.dg-circuit__stops { display: flex; flex-direction: column; }

.dg-circuit__stop {
  display: grid;
  grid-template-columns: 22px 2px 1fr;
  gap: 0 10px;
  align-items: stretch;
}

.dg-circuit__stop-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--cr);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .65rem;
  font-weight: 700;
  flex-shrink: 0;
  z-index: 1;
}

.dg-circuit__stop-line {
  width: 2px;
  background: transparent;
  border-left: 2px dashed var(--border);
  margin: 2px auto;
  flex: 1;
  min-height: 28px;
}

.dg-circuit__stop-line--last { border: none; }

.dg-circuit__stop-body {
  padding-bottom: 12px;
  padding-top: 2px;
}

.dg-circuit__stop-name {
  font-size: .82rem;
  font-weight: 600;
  color: var(--cr);
  text-decoration: none;
  display: block;
  line-height: 1.2;
}

.dg-circuit__stop-name:hover { text-decoration: underline; }

span.dg-circuit__stop-name { color: var(--ink); }

.dg-circuit__stop-note {
  font-size: .68rem;
  color: var(--muted);
  margin-top: 2px;
}

.dg-pil-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 1.25rem;
}

/* Responsive */
@media (max-width: 900px) {
  .dg-month-picker { grid-template-columns: repeat(6, 1fr); }
  .dg-season-grid  { grid-template-columns: repeat(3, 1fr); }
  .dg-circuits     { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .dg-season-grid  { grid-template-columns: repeat(2, 1fr); }
  #dg-pilgrim-map  { height: 320px; }
  .dg-map-panel    { display: none; }
}

@media (max-width: 400px) {
  .dg-month-picker { grid-template-columns: repeat(4, 1fr); }
  .dg-season-grid  { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   SEARCH RESULTS
   ============================================================ */
.dg-search-teacher-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.dg-search-teacher {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  text-decoration: none;
  background: var(--white);
  transition: border-color .12s, background .12s;
}

.dg-search-teacher:hover { border-color: var(--gold-dark); background: var(--gold-pale); }

.dg-search-teacher__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid var(--gold-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 1.1rem;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--off-white);
}

.dg-search-teacher__name  { font-size: .85rem; font-weight: 600; color: var(--ink); }
.dg-search-teacher__title { font-size: .72rem; color: var(--muted); font-style: italic; }
.dg-search-teacher__lineage { font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.dg-search-pil-list { display: flex; flex-direction: column; gap: 6px; }

.dg-search-pil {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  text-decoration: none;
  background: var(--white);
  transition: border-color .12s;
}

.dg-search-pil:hover { border-color: var(--gold-dark); }
.dg-search-pil__icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }
.dg-search-pil__name { font-size: .85rem; font-weight: 600; color: var(--ink); }
.dg-search-pil__region { font-size: .7rem; color: var(--muted); }
.dg-search-pil__country { margin-left: auto; font-size: .65rem; font-weight: 700; padding: 2px 8px; border-radius: 20px; background: var(--gold-pale); color: var(--gold-dark); border: 1px solid var(--border); white-space: nowrap; }

/* ============================================================
   TEACHER ARCHIVE — photo grid
   ============================================================ */
.dg-teacher-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 1.75rem;
}

.dg-teacher-tab {
  font-size: .78rem;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 20px;
  border: 1.5px solid transparent;
  text-decoration: none;
  transition: all .12s;
}

.dg-teachers-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.dg-teacher-card-lg {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.25rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  background: var(--white);
  transition: box-shadow .18s, transform .18s;
}

.dg-teacher-card-lg:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.09);
  transform: translateY(-2px);
}

.dg-teacher-card-lg__photo {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  border: 3px solid var(--gold-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: .85rem;
  position: relative;
  flex-shrink: 0;
}

.dg-teacher-card-lg__badge {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--cr);
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
}

.dg-teacher-card-lg__name    { font-size: .88rem; font-weight: 700; color: var(--ink); margin-bottom: 2px; line-height: 1.25; }
.dg-teacher-card-lg__titles  { font-size: .7rem; color: var(--muted); font-style: italic; margin-bottom: 3px; }
.dg-teacher-card-lg__lineage { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dg-teacher-card-lg__location{ font-size: .68rem; color: var(--muted); margin-top: 3px; }

/* ============================================================
   TEACHINGS ARCHIVE — featured + playlists
   ============================================================ */
.dg-teaching-featured {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 2.5rem;
  background: var(--white);
}

.dg-teaching-featured__thumb {
  position: relative;
  padding-bottom: 56.25%;
  background: #111;
}

.dg-teaching-featured__body {
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.dg-playlist-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 0;
}

.dg-playlist-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-left: 4px solid var(--cr);
  border-radius: 0 8px 8px 0;
  text-decoration: none;
  background: var(--white);
  transition: background .12s, box-shadow .12s;
}

.dg-playlist-card:hover { background: var(--off-white); box-shadow: 0 2px 8px rgba(0,0,0,.06); }

.dg-playlist-card__icon { font-size: 1.4rem; flex-shrink: 0; }
.dg-playlist-card__name { font-size: .84rem; font-weight: 700; margin-bottom: 2px; }
.dg-playlist-card__count { font-size: .7rem; color: var(--muted); }
.dg-playlist-card__arrow { margin-left: auto; font-size: 1rem; font-weight: 700; flex-shrink: 0; }

.dg-teaching-filters {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
  background: var(--off-white);
  border-radius: 10px;
  border: 1px solid var(--border-soft);
}

.dg-teaching-filter-group { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.dg-teaching-filter-label { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }

/* Responsive */
@media (max-width: 900px) {
  .dg-teachers-photo-grid { grid-template-columns: repeat(3, 1fr); }
  .dg-teaching-featured { grid-template-columns: 1fr; }
  .dg-teaching-featured__thumb { padding-bottom: 56.25%; }
  .dg-playlist-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .dg-teachers-photo-grid { grid-template-columns: repeat(2, 1fr); }
  .dg-search-teacher-grid { grid-template-columns: 1fr; }
  .dg-playlist-grid { grid-template-columns: 1fr; }
}

@media (max-width: 440px) {
  .dg-teachers-photo-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Nearby site icon */
.dg-pil-nearby__icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}

/* Event diversity overflow links */
.dg-event-overflow {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--border);
}

.dg-event-overflow__link {
  font-size: .72rem;
  font-weight: 600;
  color: var(--cr);
  text-decoration: none;
  background: var(--gold-pale);
  padding: 3px 10px;
  border-radius: 20px;
  border: 1px solid var(--border);
}

.dg-event-overflow__link:hover { background: var(--cr); color: #fff; }

/* ============================================================
   EVENTS ARCHIVE — featured, filters, month groups
   ============================================================ */

/* Filters bar */
.dg-events-filters {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.dg-events-filter-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
}

.dg-events-filter-label {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  min-width: 68px;
  flex-shrink: 0;
}

/* Featured event card */
.dg-event-featured {
  display: grid;
  grid-template-columns: 100px 1fr;
  border: 1px solid var(--border);
  border-left: 5px solid var(--cr);
  border-radius: 0 12px 12px 0;
  overflow: hidden;
  margin-bottom: 1.75rem;
  background: var(--white);
}

.dg-event-featured__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25rem .75rem;
  background: var(--cr);
  color: #fff;
  text-align: center;
}

.dg-event-featured__day {
  font-family: var(--serif);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1;
}

.dg-event-featured__mon {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .85;
}

.dg-event-featured__yr {
  font-size: .65rem;
  opacity: .65;
  margin-top: 2px;
}

.dg-event-featured__body {
  padding: 1.25rem 1.5rem;
}

.dg-event-featured__title {
  font-family: var(--serif);
  font-size: clamp(1.1rem,2.5vw,1.5rem);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
  margin: 0 0 .4rem;
}

.dg-event-featured__teacher {
  font-style: italic;
  color: var(--gold-dark);
  font-size: .88rem;
  margin-bottom: .35rem;
}

.dg-event-featured__loc {
  font-size: .78rem;
  color: var(--muted);
  margin-bottom: .85rem;
}

.dg-event-featured__cta {
  display: inline-block;
  padding: 7px 18px;
  border: 1.5px solid var(--cr);
  border-radius: 7px;
  font-size: .8rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .12s, color .12s;
}

.dg-event-featured__cta:hover { background: var(--cr); color: #fff; }

/* Month groups */
.dg-events-month-group { margin-bottom: 1.75rem; }

.dg-events-month-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  padding: .4rem 0;
  margin-bottom: .5rem;
  border-bottom: 1px solid var(--border-soft);
}

@media (max-width: 540px) {
  .dg-event-featured { grid-template-columns: 72px 1fr; }
  .dg-event-featured__day { font-size: 2rem; }
}

/* old footer v2 removed */

/* ============================================================
   PILGRIM CHECKLIST
   ============================================================ */
.dg-pil-progress {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .78rem;
  color: var(--ink-mid);
}

.dg-pil-progress__label { font-weight: 600; }
.dg-pil-progress__count { color: var(--cr); font-weight: 700; }

.dg-pil-tick {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .68rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink-mid);
  cursor: pointer;
  transition: all .12s;
  position: relative;
  z-index: 2;
}

.dg-pil-tick:hover { border-color: var(--gold-dark); color: var(--gold-dark); }

.dg-pil-tick.is-visited {
  background: #eaf3de;
  border-color: #3b6d11;
  color: #3b6d11;
}

.dg-pil-tick--card {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: .62rem;
  padding: 3px 8px;
  z-index: 3;
}

.dg-pil-tick--single { font-size: .78rem; padding: 6px 14px; }

/* Make card header position:relative for the tick button */
.dg-pil-card__header { position: relative; }

/* ============================================================
   SINGLE TEACHING
   ============================================================ */
.dg-teaching-embed {
  position: relative;
  padding-bottom: 56.25%;
  background: #111;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.dg-teaching-teacher {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--off-white);
  border-radius: 10px;
  border: 1px solid var(--border);
}

.dg-teaching-body {
  font-size: .91rem;
  line-height: 1.85;
  color: var(--ink-mid);
}

.dg-teaching-body p { margin-bottom: 1em; }
.dg-teaching-body p:last-child { margin-bottom: 0; }

/* Compact grid for related teachings */
.dg-teachings-grid--compact {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 700px) {
  .dg-teachings-grid--compact { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   FOOTER — v2 redesign
   ============================================================ */
.dg-footer {
  background: #1a0f05;
  color: rgba(255,255,255,.55);
}

/* Newsletter band */
.dg-footer__nl {
  background: var(--cr);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.dg-footer__nl-inner {
  max-width: var(--site-max);
  margin: 0 auto;
  padding: 1.75rem var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.dg-footer__nl-eyebrow {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: .25rem;
}

.dg-footer__nl-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: .2rem;
}

.dg-footer__nl-sub {
  font-size: .75rem;
  color: rgba(255,255,255,.55);
}

.dg-footer__nl-form {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.dg-footer__nl-input {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 7px;
  padding: 9px 14px;
  color: #fff;
  font-size: .84rem;
  font-family: var(--sans);
  width: 220px;
  outline: none;
  transition: background .12s;
}

.dg-footer__nl-input::placeholder { color: rgba(255,255,255,.38); }
.dg-footer__nl-input:focus { background: rgba(255,255,255,.2); }

.dg-footer__nl-btn {
  background: #fff;
  color: #7c1000;
  border: none;
  border-radius: 7px;
  padding: 9px 18px;
  font-size: .82rem;
  font-weight: 700;
  font-family: var(--sans);
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .12s;
}

.dg-footer__nl-btn:hover { opacity: .88; }

.dg-footer__nl-confirm {
  font-size: .75rem;
  color: rgba(255,255,255,.8);
  margin-top: .4rem;
  width: 100%;
}

/* Four columns */
.dg-footer__cols {
  max-width: var(--site-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.dg-footer__col {
  padding: 2.25rem 2rem;
  border-right: 1px solid rgba(255,255,255,.06);
}

.dg-footer__col:last-child { border-right: none; }

/* Menu column — no right border, full remaining width */
.dg-footer__col--menu {
  border-right: none;
  padding-right: var(--pad-x);
}

/* Brand column */
.dg-footer__col--brand { padding-left: var(--pad-x); }

.dg-footer__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: .75rem;
}

.dg-footer__logo-name {
  font-size: .95rem;
  font-weight: 700;
  color: #fff;
  font-family: var(--serif);
}

.dg-footer__tagline {
  font-size: .82rem;
  color: rgba(255,255,255,.45);
  line-height: 1.75;
  margin-bottom: 1.25rem;
  max-width: 320px;
}

/* Lineage dots */
.dg-footer__lineages {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 1rem;
}

.dg-footer__lineage-row {
  display: flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
}

.dg-footer__lineage-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dg-footer__lineage-name {
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  transition: color .1s;
}

.dg-footer__lineage-row:hover .dg-footer__lineage-name { color: #fff; }

.dg-footer__traditions-link {
  font-size: .72rem;
  color: rgba(255,255,255,.28);
  text-decoration: none;
  transition: color .1s;
}

.dg-footer__traditions-link:hover { color: rgba(255,255,255,.65); }

/* Shared column styles */
.dg-footer__col-title {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.28);
  margin-bottom: .7rem;
}

.dg-footer__col-divider {
  height: 1px;
  background: rgba(255,255,255,.07);
  margin: 1.1rem 0 .9rem;
}

.dg-footer__col a {
  display: block;
  font-size: .78rem;
  color: rgba(255,255,255,.48);
  text-decoration: none;
  margin-bottom: .4rem;
  transition: color .1s;
}

.dg-footer__col a:hover { color: #fff; }

/* Pilgrimage list */
.dg-footer__pil-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 0;
}

.dg-footer__pil-item {
  display: flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
}

.dg-footer__pil-flag {
  width: 14px;
  height: 10px;
  border-radius: 2px;
  flex-shrink: 0;
}

.dg-footer__pil-label {
  font-size: .78rem;
  color: rgba(255,255,255,.48);
  flex: 1;
  transition: color .1s;
}

.dg-footer__pil-item:hover .dg-footer__pil-label { color: #fff; }

.dg-footer__pil-count {
  font-size: .62rem;
  color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.07);
  padding: 1px 6px;
  border-radius: 10px;
}

/* Latest teachings mini-feed */
.dg-footer__teachings {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: .85rem;
}

.dg-footer__teaching-item {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  text-decoration: none;
}

.dg-footer__teaching-thumb {
  width: 44px;
  height: 30px;
  border-radius: 4px;
  background: rgba(255,255,255,.07);
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dg-footer__teaching-info { flex: 1; min-width: 0; }

.dg-footer__teaching-title {
  font-size: .72rem;
  color: rgba(255,255,255,.5);
  line-height: 1.4;
  transition: color .1s;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dg-footer__teaching-item:hover .dg-footer__teaching-title { color: #fff; }

.dg-footer__teaching-teacher {
  font-size: .65rem;
  color: rgba(255,255,255,.28);
  margin-top: 2px;
}

.dg-footer__all-link {
  display: block;
  font-size: .68rem;
  color: rgba(255,255,255,.28) !important;
  transition: color .1s !important;
}

.dg-footer__all-link:hover { color: rgba(255,255,255,.65) !important; }

/* Bottom bar */
.dg-footer__bottom {
  max-width: var(--site-max);
  margin: 0 auto;
  padding: 1rem var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,.05);
}

.dg-footer__copy {
  font-size: .68rem;
  color: rgba(255,255,255,.2);
}

.dg-footer__bottom-links {
  display: flex;
  gap: 16px;
}

.dg-footer__bottom-links a {
  font-size: .68rem;
  color: rgba(255,255,255,.2);
  text-decoration: none;
  transition: color .1s;
}

.dg-footer__bottom-links a:hover { color: rgba(255,255,255,.55); }

/* Responsive */
@media (max-width: 760px) {
  .dg-footer__cols { grid-template-columns: 1fr 1fr; }
  .dg-footer__col { border-right: none; border-bottom: 1px solid rgba(255,255,255,.06); }
  .dg-footer__col:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.06); }
  .dg-footer__col--brand { grid-column: 1 / -1; padding: 2rem var(--pad-x) 1.5rem; border-right: none; }
  .dg-footer__lineages { flex-direction: row; flex-wrap: wrap; gap: 10px 20px; }
}

@media (max-width: 600px) {
  .dg-footer__cols { grid-template-columns: 1fr; }
  .dg-footer__col { border-right: none; }
  .dg-footer__col:nth-child(odd) { border-right: none; }
  .dg-footer__nl-inner { flex-direction: column; align-items: flex-start; }
  .dg-footer__nl-form { flex-direction: column; width: 100%; }
  .dg-footer__nl-input { width: 100%; }
}

/* Footer nav menu — horizontal sections spread across full column */
.dg-footer__menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  gap: 0;
  flex-wrap: wrap;
  justify-content: space-between;
}

/* Each top-level item = one section column */
.dg-footer__menu > li {
  flex: 0 0 auto;
}

/* Section heading */
.dg-footer__menu > li > a {
  display: block;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.28);
  text-decoration: none;
  margin-bottom: .65rem;
  pointer-events: none;
  cursor: default;
  white-space: nowrap;
}

/* Sub-links stacked vertically under each heading */
.dg-footer__menu .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .38rem;
}

.dg-footer__menu .sub-menu li a {
  display: block;
  font-size: .78rem;
  color: rgba(255,255,255,.48);
  text-decoration: none;
  white-space: nowrap;
  transition: color .1s;
}

.dg-footer__menu .sub-menu li a:hover { color: #fff; }

/* Flat items (no children) */
.dg-footer__menu > li:not(.menu-item-has-children) > a {
  font-size: .78rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: rgba(255,255,255,.48);
  pointer-events: auto;
  cursor: pointer;
  margin-bottom: .38rem;
}

.dg-footer__menu > li:not(.menu-item-has-children) > a:hover { color: #fff; }

@media (max-width: 760px) {
  .dg-footer__cols { grid-template-columns: 1fr; }
  .dg-footer__col--menu { border-top: 1px solid rgba(255,255,255,.06); }
  .dg-footer__menu { justify-content: flex-start; gap: 1.5rem 2.5rem; }
}

/* ============================================================
   CENTRES & MONASTERIES
   ============================================================ */
.dg-centre-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.dg-centre-card {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  background: var(--white);
  transition: box-shadow .15s, transform .15s;
}

.dg-centre-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  transform: translateY(-2px);
}

.dg-centre-card__bar {
  width: 4px;
  flex-shrink: 0;
  background: var(--cr);
}

.dg-centre-card__body {
  padding: 12px 14px;
  flex: 1;
  min-width: 0;
}

.dg-centre-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 5px;
}

.dg-centre-card__name {
  font-size: .88rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
  margin: 0;
}

.dg-centre-card__lineage {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
  padding-top: 2px;
}

.dg-centre-card__address {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  font-size: .7rem;
  color: var(--muted);
  line-height: 1.4;
  margin-bottom: 6px;
}

.dg-centre-card__excerpt {
  font-size: .72rem;
  color: var(--ink-mid);
  line-height: 1.55;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dg-centre-card__link {
  font-size: .68rem;
  font-weight: 600;
  color: var(--cr);
}

@media (max-width: 860px) { .dg-centre-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .dg-centre-grid { grid-template-columns: 1fr; } }

/* ============================================================
   SINGLE CENTRE — rich profile
   ============================================================ */
.dg-centre-hero {
  position: relative;
  height: 280px;
  overflow: hidden;
}

.dg-centre-hero__art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dg-centre-hero__photo {
  position: absolute;
  inset: 0;
}

.dg-centre-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .45;
  mix-blend-mode: multiply;
}

.dg-centre-hero__overlay {
  position: absolute;
  inset: 0;
}

.dg-centre-hero__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 var(--pad-x) 1.5rem;
  z-index: 2;
  max-width: 1000px;
  margin: 0 auto;
}

.dg-centre-hero__breadcrumb {
  font-size: .68rem;
  color: rgba(255,255,255,.55);
  margin-bottom: .75rem;
}

.dg-centre-hero__breadcrumb a {
  color: rgba(255,255,255,.55);
  text-decoration: none;
}

.dg-centre-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: .6rem;
}

.dg-centre-hero__badge {
  font-size: .62rem;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 20px;
  background: rgba(255,255,255,.16);
  color: #fff;
  border: 1px solid rgba(255,255,255,.2);
}

.dg-centre-hero__badge--open {
  background: rgba(59,109,17,.8);
  border-color: transparent;
}

.dg-centre-hero__title {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 4vw, 2.6rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  margin: 0 0 .35rem;
  text-shadow: 0 1px 8px rgba(0,0,0,.3);
}

.dg-centre-hero__region {
  font-size: .72rem;
  color: rgba(255,255,255,.65);
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* Stats bar */
.dg-centre-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--border);
  border-top: none;
  background: var(--white);
}

.dg-centre-stat {
  padding: 11px 16px;
  border-right: 1px solid var(--border-soft);
}

.dg-centre-stat:last-child { border-right: none; }

.dg-centre-stat__l {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 3px;
}

.dg-centre-stat__v {
  font-size: .82rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
}

/* Sections */
.dg-centre-section {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--border-soft);
}

.dg-centre-section:last-of-type { border-bottom: none; }

.dg-centre-section__title {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 .9rem;
}

.dg-centre-body {
  font-size: .91rem;
  line-height: 1.85;
  color: var(--ink-mid);
}

.dg-centre-body p { margin-bottom: 1em; }

/* Resident teacher card */
.dg-centre-teacher {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 10px;
}

.dg-centre-teacher__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 2.5px solid var(--gold-dark);
  background: var(--off-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 1.3rem;
  overflow: hidden;
  flex-shrink: 0;
}

.dg-centre-teacher__name {
  font-size: .95rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 2px;
}

.dg-centre-teacher__lineage {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 5px;
}

/* Nearby */
.dg-centre-nearby {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.dg-centre-nearby__item {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  background: var(--white);
  transition: border-color .12s, background .12s;
}

.dg-centre-nearby__item:hover { border-color: var(--gold-dark); background: var(--gold-pale); }

.dg-centre-nearby__bar { width: 4px; flex-shrink: 0; }

.dg-centre-nearby__body { padding: 10px 12px; }

.dg-centre-nearby__name {
  font-size: .82rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 2px;
}

.dg-centre-nearby__meta {
  font-size: .68rem;
  color: var(--muted);
}

/* Sidebar */
.dg-centre-sidebar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: sticky;
  top: 80px;
}

.dg-centre-info-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
}

.dg-centre-info-card__hdr {
  padding: 8px 14px;
  color: rgba(255,255,255,.9);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dg-centre-info-card__row {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 9px 14px;
  border-bottom: 1px solid var(--border-soft);
}

.dg-centre-info-card__row:last-child { border-bottom: none; }

.dg-centre-info-card__lbl {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.dg-centre-info-card__val {
  font-size: .78rem;
  color: var(--ink);
  line-height: 1.45;
}

.dg-centre-website-btn {
  display: block;
  text-align: center;
  padding: 10px;
  border: 1.5px solid var(--cr);
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .12s, color .12s;
}

.dg-centre-website-btn:hover { background: var(--cr); color: #fff !important; }

/* Responsive */
@media (max-width: 860px) {
  /* Single centre page — stack sidebar below content */
  .dg-centre-body-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 760px) {
  .dg-centre-hero { height: 200px; }
  .dg-centre-hero__title { font-size: 1.6rem; }
  .dg-centre-stats { grid-template-columns: 1fr 1fr; }
  .dg-centre-sidebar { position: static; }
  .dg-centre-nearby { grid-template-columns: 1fr; }
  .dg-centre-section__title { font-size: 1rem; }
}

@media (max-width: 480px) {
  .dg-centre-hero { height: 175px; }
  .dg-centre-stats { grid-template-columns: 1fr 1fr; }
  .dg-centre-hero__content { padding-bottom: 1rem; }
  .dg-centre-teacher { flex-wrap: wrap; }
}

/* Centre photo gallery */
.dg-centre-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  border-radius: 10px;
  overflow: hidden;
}

.dg-centre-gallery__item {
  aspect-ratio: 4/3;
  overflow: hidden;
  display: block;
  background: var(--off-white);
}

.dg-centre-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .2s;
}

.dg-centre-gallery__item:hover img { transform: scale(1.04); }

/* First item spans 2 columns for a magazine layout */
.dg-centre-gallery__item:first-child {
  grid-column: span 2;
  aspect-ratio: 16/9;
}

@media (max-width: 600px) {
  .dg-centre-gallery { grid-template-columns: 1fr 1fr; }
  .dg-centre-gallery__item:first-child { grid-column: span 2; }
}

/* ============================================================
   CLAIM LISTING — box, modal, form
   ============================================================ */

/* Inline claim box */
.dg-claim-box {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 10px;
  flex-wrap: wrap;
}

.dg-claim-box__icon { font-size: 1.4rem; flex-shrink: 0; }

.dg-claim-box__title {
  font-size: .82rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 1px;
}

.dg-claim-box__sub {
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.4;
}

.dg-claim-box__btn {
  margin-left: auto;
  background: var(--cr);
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 7px 16px;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .12s;
  flex-shrink: 0;
}

.dg-claim-box__btn:hover { opacity: .88; }

/* Success message */
.dg-claim-success {
  padding: .85rem 1rem;
  background: #eaf3de;
  border: 1px solid #3b6d11;
  border-radius: 8px;
  font-size: .82rem;
  color: #3b6d11;
  font-weight: 600;
}

/* Modal overlay */
.dg-claim-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.dg-claim-modal__box {
  background: var(--white);
  border-radius: 14px;
  padding: 2rem;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
}

.dg-claim-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  font-size: .82rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-mid);
}

.dg-claim-modal__title {
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 .4rem;
  padding-right: 2rem;
}

.dg-claim-modal__sub {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.55;
  margin: 0 0 1.25rem;
}

/* Form */
.dg-claim-form { display: flex; flex-direction: column; gap: .85rem; }

.dg-claim-form__row { display: flex; flex-direction: column; gap: .3rem; }

.dg-claim-form__row label {
  font-size: .72rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: .03em;
}

.dg-claim-form__row input,
.dg-claim-form__row select,
.dg-claim-form__row textarea {
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: .85rem;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--white);
  transition: border-color .12s;
  width: 100%;
  box-sizing: border-box;
}

.dg-claim-form__row input:focus,
.dg-claim-form__row select:focus,
.dg-claim-form__row textarea:focus {
  outline: none;
  border-color: var(--gold-dark);
}

.dg-claim-form__submit {
  background: #7c1000;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 11px;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .12s;
  width: 100%;
}

.dg-claim-form__submit:hover { opacity: .88; }

.dg-claim-form__note {
  font-size: .72rem;
  color: var(--muted);
  text-align: center;
  margin: 0;
  line-height: 1.5;
}

@media (max-width: 480px) {
  .dg-claim-box { flex-direction: column; align-items: flex-start; }
  .dg-claim-box__btn { margin-left: 0; width: 100%; text-align: center; }
  .dg-claim-modal__box { padding: 1.25rem; }
}

/* ============================================================
   UPDATE LISTING — frontend form
   ============================================================ */
.dg-update-form { display: flex; flex-direction: column; gap: 0; }

.dg-update-section {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--border-soft);
}

.dg-update-section:last-of-type { border-bottom: none; }

.dg-update-section__title {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 1.1rem;
}

.dg-update-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.dg-update-field {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  margin-bottom: .85rem;
}

.dg-update-field:last-child { margin-bottom: 0; }

.dg-update-field label {
  font-size: .75rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: .03em;
}

.dg-update-field input,
.dg-update-field textarea,
.dg-update-field select {
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: .88rem;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--white);
  transition: border-color .12s;
  width: 100%;
  box-sizing: border-box;
}

.dg-update-field input:focus,
.dg-update-field textarea:focus {
  outline: none;
  border-color: var(--gold-dark);
  box-shadow: 0 0 0 3px var(--gold-pale);
}

.dg-update-field input[type="file"] {
  padding: 6px 10px;
  background: var(--off-white);
  font-size: .78rem;
}

.dg-update-field__hint {
  font-size: .7rem;
  color: var(--muted);
  line-height: 1.45;
}

.dg-update-notice {
  background: var(--gold-pale);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold-dark);
  border-radius: 8px;
  padding: .9rem 1rem;
  font-size: .8rem;
  color: var(--ink-mid);
  line-height: 1.6;
  margin: 1.5rem 0;
}

.dg-update-submit {
  width: 100%;
  padding: 13px;
  border: none;
  border-radius: 9px;
  color: #fff !important;
  font-size: .95rem;
  font-weight: 700;
  font-family: var(--sans);
  cursor: pointer;
  transition: opacity .12s;
}

.dg-update-submit:hover { opacity: .88; }

@media (max-width: 560px) {
  .dg-update-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   ABOUT US PAGE — fully responsive
   ============================================================ */

/* Hero */
.dg-about__hero {
  position: relative;
  background: var(--ink);
  overflow: hidden;
  padding: 4rem var(--pad-x) 3.5rem;
  text-align: center;
}

.dg-about__hero-art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dg-about__hero-inner {
  position: relative;
  max-width: 680px;
  margin: 0 auto;
}

.dg-about__eyebrow {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold-dark);
  margin-bottom: .75rem;
}

.dg-about__hero-title {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 5vw, 3rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 1rem;
}

.dg-about__hero-sub {
  font-size: clamp(.85rem, 2vw, 1rem);
  color: rgba(255,255,255,.62);
  line-height: 1.75;
  margin: 0 0 1.5rem;
}

.dg-about__hero-btn {
  display: inline-block;
  background: var(--cr);
  color: #fff;
  padding: 10px 22px;
  border-radius: 8px;
  font-size: .85rem;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .12s;
}

.dg-about__hero-btn:hover { opacity: .88; }

/* Admin edit bar */
.dg-about__edit-bar {
  background: #fef3c7;
  border-bottom: 1px solid #fcd34d;
  padding: .5rem var(--pad-x);
  font-size: .78rem;
  color: #78350f;
  text-align: center;
}

.dg-about__edit-bar a {
  color: var(--cr);
  font-weight: 700;
  margin-left: .5rem;
}

/* Body container */
.dg-about__body {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 var(--pad-x) 4rem;
}

/* Stats bar */
.dg-about__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin: 2.5rem 0 3rem;
}

.dg-about__stat {
  background: var(--white);
  padding: 1.25rem 1rem;
  text-align: center;
}

.dg-about__stat-n {
  font-family: var(--serif);
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--cr);
  line-height: 1;
  margin-bottom: .3rem;
}

.dg-about__stat-l {
  font-size: .72rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 600;
}

/* Sections */
.dg-about__section {
  padding: 2.5rem 0;
  border-bottom: 1px solid var(--border-soft);
}

.dg-about__section:last-child { border-bottom: none; }

.dg-about__section--dark {
  background: var(--ink);
  border-radius: 14px;
  padding: 2.5rem;
  margin: 2rem 0;
  border-bottom: none;
}

.dg-about__section--gold {
  background: var(--gold-pale);
  border-radius: 14px;
  padding: 2.5rem;
  margin: 2rem 0;
  border: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.dg-about__section-label {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cr);
  margin-bottom: .5rem;
}

.dg-about__section-label--gold { color: var(--gold-dark); }

.dg-about__section-title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 3.5vw, 2rem);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 1.1rem;
  line-height: 1.2;
}

.dg-about__section-title--white { color: #fff; }

/* Prose */
.dg-about__prose {
  font-size: .92rem;
  color: var(--ink-mid);
  line-height: 1.85;
}

.dg-about__prose p { margin-bottom: .9em; }
.dg-about__prose p:last-child { margin-bottom: 0; }

.dg-about__prose ul,
.dg-about__prose ol {
  padding-left: 1.4rem;
  margin-bottom: .9em;
}

.dg-about__prose li {
  margin-bottom: .35em;
  line-height: 1.65;
}

.dg-about__prose strong { font-weight: 700; color: var(--ink); }

/* Mission */
.dg-about__mission-body {
  font-size: 1.05rem;
  color: rgba(255,255,255,.75);
  line-height: 1.7;
  margin: 0 0 1.75rem;
  font-style: italic;
}

.dg-about__pillars {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.dg-about__pillar {
  background: rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 1.1rem;
}

.dg-about__pillar-icon  { font-size: 1.4rem; margin-bottom: .4rem; }
.dg-about__pillar-title { font-size: .9rem; font-weight: 700; color: #fff; margin-bottom: .3rem; }
.dg-about__pillar-body  { font-size: .75rem; color: rgba(255,255,255,.55); line-height: 1.55; }

/* Participate */
.dg-about__participate-grid {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 2rem;
  align-items: start;
}

.dg-about__participate-ctas {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-self: start;
}

.dg-about__cta-btn {
  display: block;
  text-align: center;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .12s, color .12s;
  background: var(--white);
  color: var(--ink);
  border: 1.5px solid var(--ink);
}

.dg-about__cta-btn:hover {
  background: var(--ink);
  color: #fff;
}

.dg-about__cta-btn--primary {
  background: var(--cr);
  color: #fff;
  border-color: var(--cr);
}

.dg-about__cta-btn--primary:hover {
  background: #9a1200;
  color: #fff;
}

/* Team */
.dg-about__team-intro {
  font-size: .9rem;
  color: var(--muted);
  margin: 0 0 1.5rem;
  line-height: 1.7;
}

.dg-about__team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.dg-about__team-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: box-shadow .15s;
}

.dg-about__team-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }

.dg-about__team-photo {
  width: 100%;
  aspect-ratio: 1;
  background: var(--gold-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.dg-about__team-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dg-about__team-photo span {
  font-family: var(--serif);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--cr);
}

.dg-about__team-info { padding: 1rem; }

.dg-about__team-name {
  font-size: .92rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 2px;
}

.dg-about__team-role {
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--cr);
  margin-bottom: .5rem;
}

.dg-about__team-bio {
  font-size: .75rem;
  color: var(--muted);
  line-height: 1.55;
  margin: 0;
}

.dg-about__team-empty {
  text-align: center;
  padding: 2rem;
  background: var(--off-white);
  border-radius: 10px;
  font-size: .85rem;
  color: var(--muted);
}

.dg-about__team-empty a { color: var(--cr); }

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 860px) {
  .dg-about__stats          { grid-template-columns: repeat(2, 1fr); }
  .dg-about__team-grid      { grid-template-columns: repeat(2, 1fr); }
  .dg-about__participate-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .dg-about__hero           { padding: 2.5rem var(--pad-x); }
  .dg-about__section--dark,
  .dg-about__section--gold  { margin: 1.25rem 0; border-radius: 10px; }
  .dg-about__pillars        { grid-template-columns: 1fr; }
  .dg-about__stats          { grid-template-columns: repeat(2, 1fr); }
  .dg-about__team-grid      { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 440px) {
  .dg-about__stats    { grid-template-columns: 1fr 1fr; }
  .dg-about__team-grid { grid-template-columns: 1fr; }
  .dg-about__hero-title { font-size: 1.6rem; }
}

/* ============================================================
   LOCATION-AWARE FRONT PAGE SECTION
   ============================================================ */
.dg-location-section__head {
  margin-bottom: 1.5rem;
}

.dg-location-section__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--cr);
  background: rgba(124,16,0,.08);
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: .5rem;
}

/* Location prompt (no location detected) */
.dg-location-prompt {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  background: var(--gold-pale);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold-dark);
  border-radius: 10px;
  flex-wrap: wrap;
}

.dg-location-prompt__icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}

.dg-location-prompt__body { flex: 1; min-width: 200px; }

.dg-location-prompt__title {
  font-size: .88rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 2px;
}

.dg-location-prompt__sub {
  font-size: .75rem;
  color: var(--muted);
  line-height: 1.5;
}

.dg-location-prompt__btn {
  background: var(--cr);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 8px 18px;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .12s;
  flex-shrink: 0;
}

.dg-location-prompt__btn:hover { opacity: .88; }

@media (max-width: 600px) {
  .dg-location-prompt { flex-direction: column; align-items: flex-start; }
  .dg-location-prompt__btn { width: 100%; text-align: center; }
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
@media (max-width: 640px) {
  .dg-contact-grid { grid-template-columns: 1fr !important; }
}

/* ============================================================
   PRIVACY POLICY
   ============================================================ */
.dg-privacy-body {
  font-size: .9rem;
  color: var(--ink-mid);
  line-height: 1.85;
}

.dg-privacy-intro {
  font-size: .95rem;
  color: var(--ink-mid);
  line-height: 1.8;
  padding: 1.1rem 1.25rem;
  background: var(--gold-pale);
  border-left: 3px solid var(--gold-dark);
  border-radius: 0 8px 8px 0;
  margin: 0 0 2rem;
}

.dg-privacy-body h2 {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
  margin: 2rem 0 .6rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-soft);
}

.dg-privacy-body h2:first-of-type { border-top: none; margin-top: 0; padding-top: 0; }

.dg-privacy-body h3 {
  font-size: .9rem;
  font-weight: 700;
  color: var(--ink);
  margin: 1.25rem 0 .4rem;
}

.dg-privacy-body p { margin-bottom: .9em; }
.dg-privacy-body p:last-child { margin-bottom: 0; }

.dg-privacy-body ul {
  padding-left: 1.3rem;
  margin-bottom: .9rem;
}

.dg-privacy-body li {
  margin-bottom: .4rem;
  line-height: 1.65;
}

.dg-privacy-body strong { font-weight: 700; color: var(--ink); }

.dg-privacy-body code {
  font-family: var(--mono, monospace);
  font-size: .82rem;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 5px;
  color: var(--cr);
}

.dg-privacy-body a {
  color: var(--cr);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.dg-privacy-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8rem;
  margin-bottom: .9rem;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
}

.dg-privacy-table th {
  background: var(--ink);
  color: rgba(255,255,255,.85);
  padding: 8px 12px;
  text-align: left;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.dg-privacy-table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border-soft);
  vertical-align: top;
  color: var(--ink-mid);
}

.dg-privacy-table tr:last-child td { border-bottom: none; }
.dg-privacy-table tr:nth-child(even) td { background: var(--off-white); }

.dg-privacy-table a { color: var(--cr); }

@media (max-width: 640px) {
  .dg-privacy-body { grid-column: 1 / -1; }
  aside { display: none; }
}

/* ============================================================
   CONTACT PAGE — responsive layout
   ============================================================ */
.dg-contact-layout {
  max-width: 780px;
  margin: 0 auto;
  padding: 2.5rem var(--pad-x) 4rem;
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 2.5rem;
  align-items: start;
}

.dg-contact-name-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 720px) {
  .dg-contact-layout {
    grid-template-columns: 1fr;
  }
  .dg-contact-layout aside {
    position: static;
    order: -1; /* move sidebar above form on mobile */
  }
  /* Collapse quick links to a horizontal row on mobile */
  .dg-contact-layout aside > div:first-child > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }
}

@media (max-width: 480px) {
  .dg-contact-name-row {
    grid-template-columns: 1fr;
  }
  .dg-contact-layout aside > div:first-child > div {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   SHARED LEGAL PAGE LAYOUT (Privacy Policy, Disclaimer)
   ============================================================ */
.dg-legal-layout {
  max-width: 760px;
  margin: 0 auto;
  padding: 2.5rem var(--pad-x) 4rem;
  display: grid;
  grid-template-columns: 1fr 200px;
  gap: 3rem;
  align-items: start;
}

@media (max-width: 700px) {
  .dg-legal-layout {
    grid-template-columns: 1fr;
  }
  .dg-legal-layout aside {
    display: none; /* hide TOC sidebar on mobile — not needed */
  }
  .dg-privacy-table {
    font-size: .72rem;
  }
  .dg-privacy-table th,
  .dg-privacy-table td {
    padding: 6px 8px;
  }
}

/* ============================================================
   VOLUNTEER PAGE — responsive
   ============================================================ */
.dg-volunteer-layout {
  max-width: 760px;
  margin: 0 auto;
  padding: 2.5rem var(--pad-x) 4rem;
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 2.5rem;
  align-items: start;
}

.dg-volunteer-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

@media (max-width: 760px) {
  .dg-volunteer-layout {
    grid-template-columns: 1fr;
  }
  .dg-volunteer-layout aside {
    position: static;
    order: -1;
  }
}

@media (max-width: 480px) {
  .dg-volunteer-field-row {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   PAGE SIDEBAR — sticky on desktop, static on mobile
   ============================================================ */
.dg-page-sidebar {
  position: sticky;
  top: 80px;
}

@media (max-width: 760px) {
  .dg-page-sidebar {
    position: static !important;
    top: auto !important;
  }

  /* Ensure volunteer and contact grids are truly single column */
  .dg-volunteer-layout,
  .dg-contact-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  /* Sidebar moves above form on mobile */
  .dg-volunteer-layout .dg-page-sidebar,
  .dg-contact-layout .dg-page-sidebar {
    order: -1;
  }

  /* Prevent any child from overflowing */
  .dg-volunteer-layout > *,
  .dg-contact-layout > * {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .dg-volunteer-field-row,
  .dg-contact-name-row {
    display: flex !important;
    flex-direction: column !important;
  }
}
