/* ============================================================
   Gurdwara Dukh Nivaran Elementor Widgets
   assets/css/gdns-widgets.css
   Step 1: Header Builder + Footer Builder styles
   Design tokens mirror includes/Helpers/Design_Tokens.php
   ============================================================ */

/* Global button reset: Hello Theme / Elementor global styles can
   apply a coloured background + border to every <button> element.
   This single rule resets that behaviour for every button inside
   our widgets so each component's own rules apply cleanly.
   Exclude .gdns-menu-toggle since it relies on display:none to hide
   on desktop — the reset must not override that. */
.elementor-widget-container button[class*="gdns-"]:not(.gdns-menu-toggle):not(.gdns-mobile-close){
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  cursor: pointer;
  box-shadow: none;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

:root{
  --gdns-primary: #F36D21;
  --gdns-primary-dark: #D65A16;
  --gdns-secondary: #2E3192;
  --gdns-accent: #0F172A;
  --gdns-bg: #FAFAFA;
  --gdns-bg-alt: #F3F1EC;
  --gdns-border: #E5E7EB;
  --gdns-text: #374151;
  --gdns-text-light: #6B7280;
  --gdns-white: #FFFFFF;
  --gdns-hover: #F2A33D;
  --gdns-font-heading: 'Playfair Display', Georgia, serif;
  --gdns-font-body: 'Inter', -apple-system, sans-serif;
  --gdns-radius-full: 999px;
  --gdns-speed: .3s;
  --gdns-ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset scoped to widget wrappers only ---------- */
.gdns-top-bar, .gdns-site-header, .gdns-site-footer, .gdns-mobile-nav{
  font-family: var(--gdns-font-body) !important;
  box-sizing: border-box;
}
.gdns-top-bar *, .gdns-site-header *, .gdns-site-footer *, .gdns-mobile-nav *{ box-sizing: border-box; }
.gdns-top-bar ul, .gdns-site-header ul, .gdns-site-footer ul, .gdns-mobile-nav ul{ list-style:none; margin:0; padding:0; }
.gdns-top-bar a, .gdns-site-header a, .gdns-site-footer a, .gdns-mobile-nav a{ text-decoration:none; color:inherit; }
.gdns-top-bar img, .gdns-site-header img, .gdns-mobile-nav img{ max-width:100%; display:block; }

/* ============================================================
   TOP INFORMATION BAR
   ============================================================ */
.gdns-top-bar{
  background: var(--gdns-accent);
  color: rgba(255,255,255,.82);
  font-size: .82rem;
}
.gdns-top-bar-inner{
  max-width: 1240px;
  margin-inline: auto;
  padding: 9px clamp(20px,5vw,64px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.gdns-top-bar-info{ display:flex; gap:22px; flex-wrap:wrap; }
.gdns-top-bar-item{ display:inline-flex; align-items:center; gap:6px; }
.gdns-top-bar svg{ width:14px; height:14px; flex:none; }
.gdns-top-bar-social{ display:flex; gap:14px; align-items:center; }
.gdns-top-bar-social a{ color:#fff; display:inline-flex; align-items:center; }
.gdns-top-bar-social a svg{ display:block; }
.gdns-top-bar-social a:hover{ color: var(--gdns-primary); }

/* ============================================================
   SITE HEADER
   ============================================================ */
.gdns-site-header{
  position: relative;
  z-index: 100;
  border-bottom: 1px solid var(--gdns-border);
}
.gdns-site-header.gdns-sticky{
  position: sticky;
  top: 0;
  backdrop-filter: blur(10px);
  transition: box-shadow var(--gdns-speed) var(--gdns-ease);
}
.gdns-site-header.gdns-sticky.gdns-is-scrolled{
  box-shadow: 0 4px 20px rgba(15,23,42,.06);
}
.gdns-site-header.gdns-transparent:not(.gdns-is-scrolled){
  background: transparent !important;
  border-bottom-color: transparent;
}
.gdns-site-header.gdns-transparent:not(.gdns-is-scrolled) .gdns-logo-name,
.gdns-site-header.gdns-transparent:not(.gdns-is-scrolled) .gdns-nav-link,
.gdns-site-header.gdns-transparent:not(.gdns-is-scrolled) .gdns-menu-toggle{
  color: #fff;
}

.gdns-site-header-inner{
  max-width: 1240px;
  margin-inline: auto;
  padding: 14px clamp(20px,5vw,64px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 24px;
}

/* ---- Logo ---- */
.gdns-logo{ display:flex; align-items:center; gap:12px; flex:none; }
.gdns-logo-mark{
  width: 46px; height: 46px; border-radius: var(--gdns-radius-full);
  background: linear-gradient(135deg, var(--gdns-primary), var(--gdns-secondary));
  display:flex; align-items:center; justify-content:center;
  color:#fff; flex:none;
}
.gdns-logo-image img{ border-radius: 8px; }
.gdns-logo-text{ display:flex; flex-direction:column; line-height:1.3; }
.gdns-logo-name{ font-family: var(--gdns-font-heading) !important; font-weight:700; font-size:1.1rem; color: var(--gdns-accent); white-space:nowrap; }
.gdns-logo-tagline{ font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color: var(--gdns-text-light); white-space:nowrap; margin-top:2px; }

/* ---- Desktop nav ---- */
.gdns-main-nav{ display:flex; flex:1; justify-content:center; }
.gdns-main-nav-list{ display:flex; align-items:center; gap:26px; width:100%; justify-content:center; }
.gdns-nav-item{ position:relative; }
.gdns-nav-link{
  display:flex; align-items:center; gap:4px;
  font-size:.92rem; font-weight:500; color: var(--gdns-text);
  padding:6px 0; white-space:nowrap; position:relative;
  transition: color var(--gdns-speed) var(--gdns-ease);
}
.gdns-nav-link::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:2px;
  background: var(--gdns-primary); transition:width var(--gdns-speed) var(--gdns-ease);
}
.gdns-nav-link:hover::after, .gdns-nav-link.gdns-active::after{ width:100%; }
.gdns-nav-link.gdns-active{ color: var(--gdns-primary); }
.gdns-submenu-chevron{ transition: transform var(--gdns-speed) var(--gdns-ease); }
.gdns-has-children:hover > .gdns-nav-link .gdns-submenu-chevron{ transform: rotate(180deg); }

/* ---- Dropdown submenu ---- */
.gdns-submenu{
  position:absolute; top:100%; left:0; min-width:220px;
  background:#fff; border:1px solid var(--gdns-border); border-radius:12px;
  box-shadow: 0 18px 40px rgba(15,23,42,.14);
  padding:10px; opacity:0; visibility:hidden; transform:translateY(8px);
  transition: all var(--gdns-speed) var(--gdns-ease);
  z-index:20;
}
.gdns-has-children:hover > .gdns-submenu{ opacity:1; visibility:visible; transform:translateY(4px); }
.gdns-submenu .gdns-nav-link{ padding:9px 12px; border-radius:8px; }
.gdns-submenu .gdns-nav-link:hover{ background: var(--gdns-bg-alt); }
.gdns-submenu .gdns-nav-link::after{ display:none; }
.gdns-submenu .gdns-submenu{ top:0; left:100%; }

/* ---- Header actions / Donate CTA ---- */
.gdns-header-actions{ display:flex; align-items:center; gap:14px; flex:none; }
.gdns-cta-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 24px; border-radius: var(--gdns-radius-full);
  background: var(--gdns-primary); color:#fff; font-weight:600; font-size:.9rem;
  transition: all var(--gdns-speed) var(--gdns-ease);
  box-shadow: 0 8px 24px rgba(243,109,33,.28);
}
.gdns-cta-btn:hover{ background: var(--gdns-hover); transform:translateY(-2px); }
.gdns-cta-btn--block{ display:flex; width:100%; justify-content:center; margin-top:14px; }

.gdns-menu-toggle{
  display:none; background:none; border:none; padding:6px; cursor:pointer; color: var(--gdns-accent);
}

/* ---- Mobile nav ---- */
.gdns-mobile-nav{
  display:none; position:fixed; inset:0; z-index:9999;
  background:#fff; padding:24px clamp(20px,5vw,64px);
  transform: translateX(100%);
  transition: transform var(--gdns-speed) var(--gdns-ease);
  overflow-y:auto;
}
.gdns-mobile-nav.gdns-open{ transform: translateX(0); }
.gdns-mobile-nav-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; }
.gdns-mobile-nav-list li{ border-bottom:1px solid var(--gdns-border); }
.gdns-mobile-nav-list .gdns-nav-link{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 4px; font-size:1.1rem; font-weight:500; color: var(--gdns-text);
}
.gdns-mobile-nav-list .gdns-nav-link:hover,
.gdns-mobile-nav-list .gdns-nav-link.gdns-active{ color: var(--gdns-primary); }
.gdns-mobile-nav-list .gdns-submenu{ position:static; box-shadow:none; border:none; opacity:1; visibility:visible; transform:none; padding-left:14px; display:none; }
.gdns-mobile-nav-list .gdns-has-children.gdns-mobile-open > .gdns-submenu{ display:block; }
.gdns-mobile-close{ background:none; border:none; cursor:pointer; color: var(--gdns-accent); }
.gdns-mobile-nav-notice{
  margin-top:18px; padding:12px 14px; border-radius:10px;
  background: rgba(243,109,33,.1); border:1px dashed var(--gdns-primary);
  color: var(--gdns-accent); font-size:.82rem; line-height:1.5;
}

/* ---- Responsive breakpoint (overridden inline via --gdns-breakpoint) ---- */
@media (max-width: 1180px){
  .gdns-main-nav{ display:none; }
  .gdns-header-actions .gdns-cta-btn{ display:none; }
  .gdns-menu-toggle{ display:flex; }
  .gdns-mobile-nav{ display:block; }
}

/* ============================================================
   SITE FOOTER
   ============================================================ */
.gdns-site-footer{
  background: var(--gdns-accent);
  color: rgba(255,255,255,.72);
  padding-top: 72px;
  position: relative;
  font-family: var(--gdns-font-body);
}
.gdns-site-footer-inner{
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(20px,5vw,64px);
}
.gdns-footer-top{
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:50px;
}
.gdns-footer-col h4{
  color:#fff; font-size:.95rem; font-family: var(--gdns-font-body); font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; margin:0 0 18px;
}
.gdns-footer-col ul li{ margin-bottom:11px; }
.gdns-footer-col a{ transition: color var(--gdns-speed) var(--gdns-ease); }

.gdns-footer-logo{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.gdns-footer-logo-img{ height:48px; width:auto; object-fit:contain; }
.gdns-footer-logo .gdns-logo-name{ font-family: var(--gdns-font-heading) !important; color:#fff; font-size:1.15rem; white-space:nowrap; }
.gdns-footer-social{ display:flex; gap:12px; margin-top:18px; }
.gdns-footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.85);
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-footer-social a svg{ display:block; }
.gdns-footer-social a:hover{ background: var(--gdns-primary); border-color: var(--gdns-primary); color:#fff; }

.gdns-newsletter-form{ display:flex; gap:8px; margin-top:6px; }
.gdns-newsletter-form input{
  flex:1; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06);
  border-radius: var(--gdns-radius-full); padding:11px 16px; color:#fff; font-size:.88rem; font-family:inherit;
}
.gdns-newsletter-form input::placeholder{ color: rgba(255,255,255,.5); }
.gdns-newsletter-form button{
  background: var(--gdns-primary); border:none; width:44px; height:44px; border-radius:50%;
  flex:none; display:flex; align-items:center; justify-content:center; color:#fff; cursor:pointer;
  transition: background var(--gdns-speed) var(--gdns-ease);
}
.gdns-map-placeholder{
  margin-top:16px; border-radius:12px; overflow:hidden; aspect-ratio:16/9;
  background:#152038; border:1px solid rgba(255,255,255,.12);
}
.gdns-map-placeholder iframe{ width:100%; height:100%; border:0; }

.gdns-footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:22px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
  font-size:.82rem; color: rgba(255,255,255,.55);
}
.gdns-footer-legal{ display:flex; gap:18px; }
.gdns-footer-legal a:hover{ color: var(--gdns-primary); }

.gdns-back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:50;
  width:46px; height:46px; border-radius:50%; border:none;
  background: var(--gdns-primary); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 24px rgba(243,109,33,.35);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-back-to-top.gdns-visible{ opacity:1; visibility:visible; transform:none; }

@media (max-width: 900px){
  .gdns-footer-top{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px){
  .gdns-footer-top{ grid-template-columns: 1fr; }
}

/* ============================================================
   ADVANCED TAB: responsive visibility (set via prefix_class)
   ============================================================ */
@media (max-width: 767px){
  .gdns-hide-mobile-yes{ display:none !important; }
}
@media (min-width: 768px){
  .gdns-hide-desktop-yes{ display:none !important; }
}

/* ============================================================
   STEP 2 — HOME PAGE WIDGETS
   Shared primitives (buttons, section heading, cards, grids)
   followed by widget-specific styles.
   ============================================================ */

[class^="gdns-"] *, [class*=" gdns-"] *{ box-sizing: border-box; }
.gdns-hero, .gdns-introduction, .gdns-hukamnama-preview, .gdns-schedule-preview,
.gdns-events-preview, .gdns-live-tv-preview, .gdns-donation-cta, .gdns-volunteer-cta,
.gdns-gallery-preview, .gdns-testimonials, .gdns-latest-news, .gdns-faq, .gdns-sponsor-section{
  font-family: var(--gdns-font-body);
  color: var(--gdns-text);
}
.gdns-introduction h2, .gdns-hukamnama-preview h2, .gdns-schedule-preview h2,
.gdns-events-preview h2, .gdns-live-tv-preview h2, .gdns-donation-cta h2, .gdns-volunteer-cta h2,
.gdns-gallery-preview h2, .gdns-testimonials h2, .gdns-latest-news h2, .gdns-faq h2, .gdns-sponsor-section h2,
.gdns-hukam-title{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Shared: eyebrow + section heading + motif divider ---- */
.gdns-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color: var(--gdns-primary); margin-bottom:14px;
}
.gdns-section-heading{ max-width:680px; margin:0 auto 64px !important; text-align:center; }
.gdns-section-heading h2{ font-size:clamp(1.7rem,3vw,2.5rem); margin:0 0 .5em; }
.gdns-section-heading p{ color: var(--gdns-text-light); font-size:1.05rem; margin:0; }
.gdns-motif-divider{ display:flex; align-items:center; justify-content:center; gap:10px; margin:0 auto 18px; width:120px; }
.gdns-motif-divider span{ flex:1; height:1px; background: var(--gdns-border); }
.gdns-motif-divider i{ width:7px; height:7px; background: var(--gdns-primary); transform:rotate(45deg); display:block; flex:none; }
.gdns-text-center{ text-align:center; }

/* ---- Shared: buttons ---- */
.gdns-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 30px; border-radius: var(--gdns-radius-full);
  font-weight:600; font-size:.95rem; border:1px solid transparent;
  transition: all var(--gdns-speed) var(--gdns-ease); white-space:nowrap; cursor:pointer;
}
.gdns-btn svg{ width:18px; height:18px; }
.gdns-btn--primary{ background: var(--gdns-primary); color:#fff; box-shadow:0 8px 24px rgba(243,109,33,.28); }
.gdns-btn--primary:hover{ background: var(--gdns-hover); transform:translateY(-2px); }
.gdns-btn--outline{ background:transparent; border-color: rgba(255,255,255,.5); color:#fff; }
.gdns-btn--outline:hover{ background: rgba(255,255,255,.12); border-color:#fff; }
.gdns-btn--outline-dark{ background:transparent; border-color: var(--gdns-border); color: var(--gdns-accent); }
.gdns-btn--outline-dark:hover{ background: var(--gdns-bg-alt); }
.gdns-btn--white{ background:#fff; color: var(--gdns-primary); }
.gdns-btn--white:hover{ transform:translateY(-2px); }
.gdns-btn--block{ width:100%; }
.gdns-btn-ghost{ display:inline-flex; align-items:center; gap:4px; color: var(--gdns-secondary); font-weight:600; font-size:.92rem; }
.gdns-btn-ghost:hover{ color: var(--gdns-primary); }

/* ---- Shared: card / card-grid ---- */
.gdns-card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.gdns-card{
  background:#fff; border-radius:18px; border:1px solid var(--gdns-border);
  overflow:hidden; transition: transform var(--gdns-speed) var(--gdns-ease), box-shadow var(--gdns-speed) var(--gdns-ease);
}
.gdns-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(15,23,42,.14); }
.gdns-card-img{ aspect-ratio:4/3; overflow:hidden; }
.gdns-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--gdns-ease); }
.gdns-card:hover .gdns-card-img img{ transform:scale(1.07); }
.gdns-card-body{ padding:24px; }
.gdns-card-tag{
  display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color: var(--gdns-secondary); background:#EEF0FB; padding:5px 12px; border-radius: var(--gdns-radius-full); margin-bottom:12px;
}
.gdns-card-body h3{ font-size:1.2rem; margin:0 0 8px; font-family: var(--gdns-font-heading) !important; color: var(--gdns-accent); }
.gdns-card-meta{ display:flex; flex-wrap:wrap; gap:14px; font-size:.84rem; color: var(--gdns-text-light); margin-bottom:12px; }
.gdns-card-meta span{ display:inline-flex; align-items:center; gap:6px; }
.gdns-card-meta svg{ width:14px; height:14px; color: var(--gdns-primary); }
.gdns-card-excerpt{ font-size:.9rem; color: var(--gdns-text-light); margin:0 0 14px; }
@media (max-width:980px){ .gdns-card-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-card-grid{ grid-template-columns:1fr; } }

/* ---- Shared: feature box ---- */
.gdns-feature-box{
  text-align:center; padding:34px 24px; background:#fff; border-radius:18px;
  border:1px solid var(--gdns-border); transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-feature-box:hover{ border-color: var(--gdns-primary); box-shadow:0 10px 30px rgba(15,23,42,.08); transform:translateY(-4px); }
.gdns-feature-icon{
  width:60px; height:60px; border-radius:50%; background:linear-gradient(135deg,#FFE9D9,#FBE5C9);
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px; color: var(--gdns-primary);
}
.gdns-feature-box h3{ font-size:1.08rem; font-family: var(--gdns-font-heading) !important; color: var(--gdns-accent); margin:0 0 8px; }
.gdns-feature-box p{ color: var(--gdns-text-light); font-size:.92rem; margin:0; }

/* ============================================================
   HERO BANNER
   ============================================================ */
.gdns-hero{
  position:relative; display:flex; align-items:center; overflow:hidden; color:#fff;
  padding: 60px clamp(20px,5vw,64px);
}
.gdns-hero-content{
  position:relative; z-index:1;
  /* Stretch across the full container width so the text starts at
     the same left edge as the header navigation, but limit the text
     column to a readable width so it doesn't span the full 1240px. */
  width:100%; max-width:1240px; margin-inline:auto;
}.gdns-hero-bg{ position:absolute; inset:0; z-index:0; }
.gdns-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.gdns-hero-overlay{ position:absolute; inset:0; }
.gdns-hero-glow{
  position:absolute; top:-20%; left:50%; transform:translateX(-50%); width:900px; height:900px; border-radius:50%;
  background:radial-gradient(circle, rgba(243,109,33,.35) 0%, rgba(243,109,33,0) 65%); z-index:0; pointer-events:none;
}
.gdns-hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px; font-size:.78rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color: var(--gdns-primary); margin-bottom:14px;
}
.gdns-hero h1{ color:#fff; font-family: var(--gdns-font-heading) !important; font-size:clamp(2.4rem,5.4vw,4.1rem); margin:0 0 .4em; line-height:1.15; max-width:700px; }
.gdns-hero p{ color: rgba(255,255,255,.85); font-size:1.15rem; max-width:600px; margin:0; }
.gdns-hero-actions{ display:flex; gap:16px; margin-top:30px; flex-wrap:wrap; }

/* ============================================================
   INTRODUCTION
   ============================================================ */
.gdns-intro-layout{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-intro-image-left{ direction:rtl; }
.gdns-intro-image-left > *{ direction:ltr; }
.gdns-intro-heading{ font-size:clamp(1.7rem,3vw,2.4rem); margin:0 0 .5em; }
.gdns-intro-text{ color: var(--gdns-text-light); }
.gdns-intro-stats{ display:flex; gap:40px; margin-top:30px; }
.gdns-stat-number{ display:block; font-family: var(--gdns-font-heading) !important; font-size:1.6rem; color: var(--gdns-primary); font-weight:700; }
.gdns-stat-label{ display:block; font-size:.9rem; color: var(--gdns-text-light); }
.gdns-intro-image img{ border-radius:28px; width:100%; }
@media (max-width:900px){ .gdns-intro-layout{ grid-template-columns:1fr; } .gdns-intro-image-left{ direction:ltr; } }

/* ============================================================
   HUKAMNAMA PREVIEW
   ============================================================ */
.gdns-hukamnama-preview{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-hukam-card{
  background:linear-gradient(135deg, var(--gdns-secondary), #1d1f6e); border-radius:28px; color:#fff;
  padding:clamp(28px,5vw,56px); position:relative; overflow:hidden;
}
.gdns-hukam-card::before{
  content:""; position:absolute; right:-80px; top:-80px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(243,109,33,.35), transparent 70%);
}
.gdns-hukam-date{
  display:inline-flex; align-items:center; gap:8px; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(255,255,255,.12); padding:6px 16px; border-radius: var(--gdns-radius-full); margin-bottom:18px;
}
.gdns-hukam-title{ color:#fff; font-size:1.2rem; margin:0 0 18px; }
.gdns-hukam-gurmukhi{ font-family: var(--gdns-font-heading) !important; font-size:clamp(1.3rem,2.6vw,1.9rem); line-height:1.7; margin:0 0 18px; max-width:760px; }
.gdns-hukam-translation{ color: rgba(255,255,255,.78); max-width:680px; font-size:1.02rem; margin:0; }
.gdns-hukam-actions{ display:flex; gap:16px; margin-top:26px; flex-wrap:wrap; }

/* ============================================================
   SCHEDULE PREVIEW
   ============================================================ */
.gdns-schedule-preview{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-schedule-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-bottom:36px; }
@media (max-width:980px){ .gdns-schedule-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-schedule-grid{ grid-template-columns:1fr; } }

/* ============================================================
   EVENTS PREVIEW / LATEST NEWS (shared .gdns-card-grid above)
   ============================================================ */
.gdns-events-preview, .gdns-latest-news{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-events-preview .gdns-card-grid, .gdns-latest-news .gdns-card-grid{ margin-bottom:36px; }

/* ============================================================
   LIVE TV PREVIEW
   ============================================================ */
.gdns-live-tv-preview{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-live-tv-feature{
  position:relative; border-radius:28px; overflow:hidden; background: var(--gdns-accent); color:#fff;
  aspect-ratio:16/8.2; display:flex; align-items:flex-end;
}
.gdns-live-tv-feature img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; }
.gdns-live-tv-feature iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.gdns-live-tv-content{ position:relative; z-index:1; padding:clamp(24px,4vw,46px); width:100%; }
.gdns-live-badge{
  display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border-radius: var(--gdns-radius-full);
  font-size:.78rem; font-weight:700; letter-spacing:.05em; margin-bottom:16px;
}
.gdns-live-badge--on{ background:#E11D2E; }
.gdns-live-badge--off{ background:#475569; }
.gdns-live-dot{ width:8px; height:8px; border-radius:50%; background:#fff; display:inline-block; animation: gdns-pulse 1.6s infinite; }
@keyframes gdns-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }
.gdns-live-tv-content h2{ color:#fff; max-width:520px; font-size:clamp(1.4rem,3vw,2rem); margin:0 0 14px; }
.gdns-play-circle{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:84px; height:84px; border-radius:50%;
  background: rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(6px); z-index:1; color:#fff;
}
.gdns-play-circle svg{ width:30px; height:30px; margin-left:3px; }

/* ============================================================
   CTA BANDS (Donation / Volunteer)
   ============================================================ */
.gdns-donation-cta, .gdns-volunteer-cta{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-cta-band{
  border-radius:28px; color:#fff; text-align:center; padding:clamp(36px,6vw,64px);
  background-image: linear-gradient(120deg, var(--gdns-primary), #e25a16);
}
.gdns-cta-band--secondary{ background-image: linear-gradient(120deg, var(--gdns-secondary), #1d1f6e); }
.gdns-cta-band h2{ color:#fff; font-size:clamp(1.6rem,3.4vw,2.3rem); margin:0 0 .4em; }
.gdns-cta-band p{ color: rgba(255,255,255,.88); max-width:560px; margin:0 auto; }
.gdns-cta-actions{ display:flex; gap:16px; justify-content:center; margin-top:24px; flex-wrap:wrap; }

/* ============================================================
   GALLERY PREVIEW
   ============================================================ */
.gdns-gallery-preview{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.gdns-gallery-grid a{ border-radius:10px; overflow:hidden; aspect-ratio:1/1; display:block; }
.gdns-gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--gdns-ease); }
.gdns-gallery-grid a:hover img{ transform:scale(1.08); }
@media (max-width:768px){ .gdns-gallery-grid{ grid-template-columns:repeat(2,1fr); } }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.gdns-testimonials{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-testimonial-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.gdns-testimonial-card{ background:#fff; border:1px solid var(--gdns-border); border-radius:18px; padding:28px; height:100%; }
.gdns-testimonial-stars{ color: var(--gdns-primary); letter-spacing:2px; margin-bottom:14px; }
.gdns-testimonial-author{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.gdns-testimonial-author img{ width:44px; height:44px; border-radius:50%; object-fit:cover; }
.gdns-testimonial-name{ font-weight:600; color: var(--gdns-accent); font-size:.92rem; }
.gdns-testimonial-role{ font-size:.8rem; color: var(--gdns-text-light); }
@media (max-width:980px){ .gdns-testimonial-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-testimonial-grid{ grid-template-columns:1fr; } }

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.gdns-faq{ max-width:840px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-accordion-item{ border-bottom:1px solid var(--gdns-border); }
.gdns-accordion-trigger{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px;
  background:none; border:none; padding:20px 4px; text-align:left; cursor:pointer;
  font-family: var(--gdns-font-heading) !important; font-size:1.05rem; color: var(--gdns-accent); font-weight:700;
}
.gdns-accordion-trigger svg{ width:20px; height:20px; flex:none; transition: transform var(--gdns-speed); color: var(--gdns-primary); }
.gdns-accordion-item.gdns-open .gdns-accordion-trigger svg{ transform:rotate(45deg); }
.gdns-accordion-panel{ max-height:0; overflow:hidden; transition: max-height var(--gdns-speed) var(--gdns-ease); }
.gdns-accordion-panel-inner{ padding:0 4px 22px; color: var(--gdns-text-light); }

/* ============================================================
   SPONSOR SECTION
   ============================================================ */
.gdns-sponsor-section{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-sponsor-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.gdns-sponsor-card{
  background:#fff; border:1px solid var(--gdns-border); border-radius:18px; padding:30px; text-align:center;
}
.gdns-sponsor-card p{ color: var(--gdns-text-light); font-size:.92rem; }
.gdns-sponsor-amount{ display:block; font-weight:700; color: var(--gdns-primary); margin:10px 0 18px; }
@media (max-width:980px){ .gdns-sponsor-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-sponsor-grid{ grid-template-columns:1fr; } }

/* ============================================================
   STEP 3 — ABOUT PAGE WIDGETS
   ============================================================ */
.gdns-page-banner, .gdns-history, .gdns-mission, .gdns-vision, .gdns-values,
.gdns-statistics, .gdns-timeline-section, .gdns-team-section, .gdns-about-cta{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
}
.gdns-history h2, .gdns-mission h2, .gdns-vision h2, .gdns-values h2,
.gdns-timeline-section h2, .gdns-team-section h2, .gdns-page-banner h1,
.gdns-timeline-body h3, .gdns-team-info h3{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Page Banner (About Hero) ---- */
.gdns-page-banner{ position:relative; color:#fff; padding:130px clamp(20px,5vw,64px) 70px; overflow:hidden; min-height:360px; display:flex; align-items:flex-end; }
.gdns-page-banner-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,23,42,.6), rgba(15,23,42,.85)); }
.gdns-page-banner-content{ position:relative; z-index:1; max-width:1240px; margin-inline:auto; width:100%; }
.gdns-page-banner h1{ color:#fff !important; font-size:clamp(2rem,4vw,3rem); margin:0 0 .2em; }
.gdns-eyebrow--light{ color:#F9B98C; }
.gdns-breadcrumb{ display:flex; gap:8px; font-size:.88rem; color: rgba(255,255,255,.75); margin-bottom:10px; }
.gdns-breadcrumb a:hover{ color: var(--gdns-primary); }

/* ---- Content Section (History / Mission / Vision) ---- */
.gdns-history, .gdns-mission, .gdns-vision{ max-width:1240px; margin-inline:auto; padding:60px clamp(20px,5vw,64px); }
.gdns-content-section{ max-width:780px; }
.gdns-content-section--has-image{
  max-width:1240px; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;
}
.gdns-content-section--has-image.gdns-image-left{ direction:rtl; }
.gdns-content-section--has-image.gdns-image-left > *{ direction:ltr; }
.gdns-content-section-icon{
  width:60px; height:60px; border-radius:50%; background:linear-gradient(135deg,#FFE9D9,#FBE5C9);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px; color: var(--gdns-primary);
}
.gdns-content-section-text h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin:0 0 .5em; }
.gdns-content-section-body{ color: var(--gdns-text-light); }
.gdns-content-section-image img{ border-radius:28px; width:100%; }
@media (max-width:900px){ .gdns-content-section--has-image{ grid-template-columns:1fr; } .gdns-content-section--has-image.gdns-image-left{ direction:ltr; } }

/* ---- Values (reuses .gdns-feature-box from Step 2) ---- */
.gdns-values{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-values-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:980px){ .gdns-values-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-values-grid{ grid-template-columns:1fr; } }

/* ---- Statistics ---- */
.gdns-statistics{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; text-align:center; }
.gdns-stat-card .gdns-stat-number{ display:block; font-family: var(--gdns-font-heading) !important; font-size:clamp(1.8rem,3.5vw,2.6rem); font-weight:700; color: var(--gdns-primary); }
.gdns-stat-card .gdns-stat-label{ display:block; font-size:.92rem; color: var(--gdns-text-light); margin-top:6px; }
@media (max-width:768px){ .gdns-stats-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---- Timeline ---- */
.gdns-timeline-section{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-timeline{ position:relative; max-width:840px; margin-inline:auto; }
.gdns-timeline::before{ content:""; position:absolute; left:29px; top:8px; bottom:8px; width:2px; background: var(--gdns-border); }
.gdns-timeline-item{ position:relative; display:flex; gap:26px; padding-bottom:38px; }
.gdns-timeline-item:last-child{ padding-bottom:0; }
.gdns-timeline-dot{
  width:60px; height:60px; flex:none; border-radius:50%; background:#fff; border:1px solid var(--gdns-border);
  display:flex; align-items:center; justify-content:center; color: var(--gdns-primary); z-index:1;
}
.gdns-timeline-body{ background:#fff; border:1px solid var(--gdns-border); border-radius:18px; padding:20px 24px; flex:1; }
.gdns-timeline-year{ font-weight:700; color: var(--gdns-secondary); font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; margin-bottom:4px; }
.gdns-timeline-body h3{ font-size:1.1rem; margin:0 0 6px; }
.gdns-timeline-body p{ margin:0; color: var(--gdns-text-light); font-size:.92rem; }

/* ---- Team Grid (Committee / Granthi / Management) ---- */
.gdns-team-section{ max-width:1240px; margin-inline:auto; padding:60px clamp(20px,5vw,64px); }
.gdns-team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.gdns-team-card{
  background:#fff; border:1px solid var(--gdns-border); border-radius:18px; overflow:hidden;
  transition: transform var(--gdns-speed) var(--gdns-ease), box-shadow var(--gdns-speed) var(--gdns-ease);
}
.gdns-team-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(15,23,42,.14); }
.gdns-team-photo{ aspect-ratio:4/4.2; overflow:hidden; }
.gdns-team-photo img{ width:100%; height:100%; object-fit:cover; }
.gdns-team-info{ padding:20px; text-align:center; }
.gdns-team-info h3{ font-size:1.05rem; margin:0 0 4px; }
.gdns-team-role{ display:block; font-size:.84rem; color: var(--gdns-primary); font-weight:600; margin-bottom:8px; }
.gdns-team-info p{ font-size:.86rem; color: var(--gdns-text-light); margin:0; }
@media (max-width:980px){ .gdns-team-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-team-grid{ grid-template-columns:1fr; } }

/* ---- About CTA (reuses .gdns-cta-band from Step 2) ---- */
.gdns-about-cta{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }

/* ============================================================
   STEP 4 — DAILY HUKAMNAMA WIDGETS
   ============================================================ */
.gdns-audio-player, .gdns-pdf-download, .gdns-share-buttons, .gdns-translation,
.gdns-hukamnama-archive, .gdns-related-hukamnama, .gdns-hukamnama-sidebar{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
}
.gdns-hukamnama-archive h2, .gdns-related-hukamnama h2, .gdns-hukamnama-sidebar h3,
.gdns-archive-info h4, .gdns-related-card h3{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Section heading, left-aligned variant ---- */
.gdns-section-heading--left{ max-width:none; text-align:left; margin:0 0 36px; }
.gdns-section-heading--left h2{ margin:0 0 .3em; }

/* ---- Audio Player ---- */
.gdns-audio-player{
  display:flex; align-items:center; gap:16px; padding:18px 22px; background:#fff;
  border:1px solid var(--gdns-border); border-radius:18px; max-width:480px;
}
.gdns-audio-player-toggle{
  width:48px; height:48px; flex:none; border-radius:50%; border:none; cursor:pointer;
  background: var(--gdns-primary); color:#fff; display:flex; align-items:center; justify-content:center;
}
.gdns-audio-player-body{ flex:1; min-width:0; }
.gdns-audio-player-title{ font-weight:600; color: var(--gdns-accent); font-size:.95rem; }
.gdns-audio-player-subtitle{ font-size:.8rem; color: var(--gdns-text-light); margin-bottom:8px; }
.gdns-audio-progress-track{ height:5px; border-radius:3px; background: var(--gdns-bg-alt); overflow:hidden; margin-top:6px; }
.gdns-audio-progress-fill{ height:100%; width:0%; background: var(--gdns-primary); transition:width .1s linear; }
.gdns-audio-time{ display:flex; justify-content:space-between; font-size:.72rem; color: var(--gdns-text-light); margin-top:4px; }

/* ---- PDF Download ---- */
.gdns-pdf-download--card{
  display:flex; align-items:center; gap:16px; padding:18px 22px; background:#fff;
  border:1px solid var(--gdns-border); border-radius:18px; max-width:480px;
}
.gdns-pdf-icon{
  width:48px; height:48px; flex:none; border-radius:14px; background: var(--gdns-bg-alt);
  color: var(--gdns-primary); display:flex; align-items:center; justify-content:center;
}
.gdns-pdf-info{ flex:1; }
.gdns-pdf-title{ font-weight:600; color: var(--gdns-accent); font-size:.95rem; }
.gdns-pdf-description{ font-size:.8rem; color: var(--gdns-text-light); }
.gdns-pdf-download--inline{ display:inline-flex; }

/* ---- Share Buttons ---- */
.gdns-share-buttons{ display:flex; align-items:center; gap:14px; }
.gdns-share-label{ font-weight:600; color: var(--gdns-accent); font-size:.9rem; }
.gdns-share-buttons a, .gdns-share-buttons button{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--gdns-border); background:#fff;
  display:flex; align-items:center; justify-content:center; color: var(--gdns-text); cursor:pointer;
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-share-buttons a:hover, .gdns-share-buttons button:hover{ background: var(--gdns-primary); color:#fff; border-color: var(--gdns-primary); }
.gdns-share-buttons button.gdns-copied{ background: var(--gdns-secondary); color:#fff; border-color: var(--gdns-secondary); }

/* ---- Translation tabs ---- */
.gdns-translation{ background:#fff; border:1px solid var(--gdns-border); border-radius:18px; padding:24px; max-width:780px; }
.gdns-translation-tabs{ display:flex; gap:8px; margin-bottom:18px; border-bottom:1px solid var(--gdns-border); }
.gdns-translation-tab{
  background:none; border:none; padding:10px 4px; margin-right:18px; font-weight:600; font-size:.9rem;
  color: var(--gdns-text-light); cursor:pointer; position:relative; top:1px;
}
.gdns-translation-tab.gdns-active{ color: var(--gdns-primary); border-bottom:2px solid var(--gdns-primary); }
.gdns-translation-panel{ display:none; line-height:1.8; color: var(--gdns-text); }
.gdns-translation-panel.gdns-active{ display:block; }
.gdns-translation-panel.gdns-lang-gurmukhi{ font-family: var(--gdns-font-heading) !important; font-size:1.15rem; }

/* ---- Hukamnama Archive (Previous Hukamnama List) ---- */
.gdns-hukamnama-archive h2{ margin:0 0 22px; font-size:1.4rem; }
.gdns-archive-item{
  display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--gdns-border);
  border-radius:14px; padding:14px 16px; margin-bottom:12px;
}
.gdns-archive-date{
  width:50px; height:50px; flex:none; border-radius:10px; background: var(--gdns-bg-alt);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.gdns-archive-day{ font-weight:700; color: var(--gdns-primary); font-size:1.1rem; line-height:1; }
.gdns-archive-month{ font-size:.62rem; text-transform:uppercase; color: var(--gdns-text-light); }
.gdns-archive-info{ flex:1; min-width:0; }
.gdns-archive-info h4{ font-size:.92rem; margin:0 0 2px; font-family: var(--gdns-font-body) !important; font-weight:600; color: var(--gdns-accent); }
.gdns-archive-info span{ font-size:.8rem; color: var(--gdns-text-light); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ---- Related Hukamnama ---- */
.gdns-related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.gdns-related-card{
  display:block; background:#fff; border:1px solid var(--gdns-border); border-radius:16px; padding:22px;
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-related-card:hover{ transform:translateY(-4px); box-shadow:0 14px 32px rgba(15,23,42,.1); border-color: var(--gdns-primary); }
.gdns-related-date{ font-size:.78rem; color: var(--gdns-primary); font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.gdns-related-card h3{ font-size:1.05rem; margin:8px 0; }
.gdns-related-card p{ font-size:.88rem; color: var(--gdns-text-light); margin:0 0 12px; }
@media (max-width:900px){ .gdns-related-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .gdns-related-grid{ grid-template-columns:1fr; } }

/* ---- Hukamnama Sidebar ---- */
.gdns-hukamnama-sidebar{ display:flex; flex-direction:column; gap:22px; }
.gdns-sidebar-block{ background:#fff; border:1px solid var(--gdns-border); border-radius:18px; padding:22px; }
.gdns-sidebar-block h3{ font-size:1rem; margin:0 0 14px; }
.gdns-sidebar-block p{ font-size:.88rem; color: var(--gdns-text-light); margin:0; }
.gdns-sidebar-block--featured{ background:linear-gradient(135deg, var(--gdns-secondary), #1d1f6e); color:#fff; border:none; }
.gdns-sidebar-block--featured h3{ color:#fff; }
.gdns-sidebar-block--featured p{ color: rgba(255,255,255,.78); margin-bottom:14px; }
.gdns-panchang-list{ list-style:none; margin:0; padding:0; font-size:.88rem; }
.gdns-panchang-list li{ display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--gdns-border); color: var(--gdns-text-light); }
.gdns-panchang-list li:last-child{ border-bottom:none; }
.gdns-panchang-list strong{ color: var(--gdns-accent); font-weight:600; }

/* ============================================================
   STEP 5 — DAILY SCHEDULE WIDGETS
   ============================================================ */
.gdns-schedule-timeline-section, .gdns-prayer-cards, .gdns-special-programs, .gdns-langar-timing{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
  max-width:1240px; margin-inline:auto; padding: 60px clamp(20px,5vw,64px);
}
.gdns-schedule-timeline-section h2, .gdns-prayer-cards h2, .gdns-special-programs h2,
.gdns-langar-timing h2, .gdns-prayer-card h3{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Timeline filter tabs ---- */
.gdns-timeline-filters{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-bottom:36px; }
.gdns-timeline-filter{
  border:1px solid var(--gdns-border); background:#fff; border-radius: var(--gdns-radius-full);
  padding:9px 20px; font-size:.86rem; font-weight:600; color: var(--gdns-text-light); cursor:pointer;
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-timeline-filter:hover{ border-color: var(--gdns-primary); color: var(--gdns-primary); }
.gdns-timeline-filter.gdns-active{ background: var(--gdns-primary); border-color: var(--gdns-primary); color:#fff; }

/* ---- Schedule timeline item additions (base .gdns-timeline* from Step 3) ---- */
.gdns-timeline--schedule .gdns-timeline-item{ transition: opacity var(--gdns-speed) var(--gdns-ease); }
.gdns-timeline--schedule .gdns-timeline-item.gdns-timeline-hidden{ display:none; }
.gdns-timeline-time-row{ display:flex; align-items:center; gap:12px; margin-bottom:4px; flex-wrap:wrap; }
.gdns-timeline-time{ font-weight:700; color: var(--gdns-secondary); font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; }
.gdns-timeline-period-badge{
  font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  padding:3px 10px; border-radius: var(--gdns-radius-full);
}
.gdns-period-morning{ background:#FFF3DD; color:#B45309; }
.gdns-period-afternoon{ background:#FFE9D9; color:#C2410C; }
.gdns-period-evening{ background:#EEF0FB; color: var(--gdns-secondary); }
.gdns-period-night{ background:#E2E8F0; color: var(--gdns-accent); }

/* ---- Prayer Cards ---- */
.gdns-prayer-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.gdns-prayer-card{
  text-align:center; padding:24px 16px; background:#fff; border:1px solid var(--gdns-border); border-radius:16px;
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-prayer-card:hover{ border-color: var(--gdns-primary); box-shadow:0 10px 26px rgba(15,23,42,.08); transform:translateY(-3px); }
.gdns-prayer-card .gdns-feature-icon{ width:48px; height:48px; margin-bottom:12px; }
.gdns-prayer-time{ display:block; font-size:.78rem; font-weight:700; color: var(--gdns-primary); margin-bottom:6px; }
.gdns-prayer-card h3{ font-size:.98rem; margin:0 0 4px; }
.gdns-prayer-note{ display:block; font-size:.78rem; color: var(--gdns-text-light); }
@media (max-width:980px){ .gdns-prayer-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px){ .gdns-prayer-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---- Special Programs (reuses .gdns-feature-box) ---- */
.gdns-special-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
a.gdns-feature-box{ display:block; text-decoration:none; }
@media (max-width:980px){ .gdns-special-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-special-grid{ grid-template-columns:1fr; } }

/* ---- Langar Timing ---- */
.gdns-langar-timing-inner{
  background: var(--gdns-bg-alt); border-radius:28px; padding:clamp(28px,5vw,48px);
  display:grid; grid-template-columns:auto 1fr 1fr; gap:36px; align-items:center;
}
.gdns-langar-icon{
  width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,#FFE9D9,#FBE5C9);
  color: var(--gdns-primary); display:flex; align-items:center; justify-content:center; flex:none;
}
.gdns-langar-text h2{ font-size:clamp(1.4rem,2.6vw,1.8rem); margin:0 0 .4em; }
.gdns-langar-text p{ color: var(--gdns-text-light); margin:0 0 18px; max-width:420px; }
.gdns-langar-slots{ display:flex; flex-direction:column; gap:14px; }
.gdns-langar-slot{
  background:#fff; border:1px solid var(--gdns-border); border-radius:14px; padding:14px 18px;
  display:flex; flex-direction:column;
}
.gdns-langar-slot-time{ font-family: var(--gdns-font-heading) !important; font-weight:700; color: var(--gdns-primary); font-size:1.1rem; }
.gdns-langar-slot-label{ font-weight:600; color: var(--gdns-accent); font-size:.9rem; }
.gdns-langar-slot-days{ font-size:.78rem; color: var(--gdns-text-light); }
@media (max-width:980px){ .gdns-langar-timing-inner{ grid-template-columns:1fr; text-align:center; } .gdns-langar-icon{ margin-inline:auto; } .gdns-langar-text p{ margin-inline:auto; } }

/* ============================================================
   STEP 6 — UPCOMING EVENTS WIDGETS (The Events Calendar integration)
   ============================================================ */
.gdns-events-grid-widget, .gdns-events-carousel-widget, .gdns-featured-event-widget,
.gdns-recent-events-widget, .gdns-event-search, .gdns-event-categories,
.gdns-calendar-header, .gdns-countdown, .gdns-tribe-embed{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
  max-width:1240px; margin-inline:auto;
}
.gdns-events-grid-widget, .gdns-events-carousel-widget, .gdns-featured-event-widget, .gdns-recent-events-widget{
  padding-inline: clamp(20px,5vw,64px);
}
.gdns-events-grid-widget h2, .gdns-events-carousel-widget h2, .gdns-featured-event-widget h2,
.gdns-recent-events-widget h2, .gdns-calendar-header h3{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Equal-height dynamic event cards (extends .gdns-card from Step 2) ---- */
.gdns-events-grid{ align-items:stretch; }
.gdns-event-card{ display:flex; flex-direction:column; height:100%; }
.gdns-event-card .gdns-card-body{ display:flex; flex-direction:column; flex:1; }
.gdns-event-card-cta{ margin-top:auto; align-self:flex-start; }
.gdns-event-card-meta{ flex-wrap:wrap; }
.gdns-event-card-venue{ display:flex; align-items:center; gap:6px; font-size:.84rem; color: var(--gdns-text-light); margin-bottom:10px; }
.gdns-event-card-venue svg{ width:14px; height:14px; color: var(--gdns-primary); flex:none; }
.gdns-events-grid--past .gdns-card-tag{ background: var(--gdns-bg-alt); color: var(--gdns-text-light); }

/* ---- Empty state ---- */
.gdns-no-events{
  text-align:center; padding:60px 20px; color: var(--gdns-text-light);
  background: var(--gdns-bg-alt); border-radius:18px; border:1px dashed var(--gdns-border);
}
.gdns-no-events svg{ color: var(--gdns-primary); margin-bottom:14px; }
.gdns-no-events p{ margin:0; font-size:1.05rem; font-weight:600; color: var(--gdns-accent); }

/* ---- Featured Event ---- */
.gdns-featured-event{
  display:grid; grid-template-columns:1fr 1fr; gap:0; background:#fff; border-radius:28px;
  border:1px solid var(--gdns-border); overflow:hidden;
}
.gdns-featured-event-image{ aspect-ratio:4/3; overflow:hidden; }
.gdns-featured-event-image img{ width:100%; height:100%; object-fit:cover; }
.gdns-featured-event-body{ padding:clamp(28px,4vw,46px); display:flex; flex-direction:column; }
.gdns-featured-event-body h2{ font-size:clamp(1.5rem,3vw,2.1rem); margin:6px 0 16px; }
.gdns-featured-event-body p{ color: var(--gdns-text-light); margin:14px 0 22px; }
.gdns-featured-event-body .gdns-btn{ align-self:flex-start; }
@media (max-width:900px){ .gdns-featured-event{ grid-template-columns:1fr; } }

/* ---- Events Carousel ---- */
.gdns-carousel-header{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; flex-wrap:wrap; }
.gdns-carousel-nav{ display:flex; gap:8px; }
.gdns-carousel-nav button{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--gdns-border); background:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; color: var(--gdns-accent);
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-carousel-nav button:hover{ background: var(--gdns-primary); border-color: var(--gdns-primary); color:#fff; }
.gdns-carousel-nav svg{ width:18px; height:18px; }
.gdns-carousel-track{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px;
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;
}
.gdns-carousel-track .gdns-card{ flex:none; scroll-snap-align:start; min-width:320px; max-width:320px; }
.gdns-carousel-track::-webkit-scrollbar{ height:6px; }
.gdns-carousel-track::-webkit-scrollbar-thumb{ background: var(--gdns-border); border-radius:3px; }

/* ---- Month / List View embed wrapper ---- */
.gdns-tribe-embed{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-tribe-embed .tribe-events-calendar-month,
.gdns-tribe-embed .tribe-events-calendar-list{ font-family: var(--gdns-font-body) !important; }

/* ---- Event Search ---- */
.gdns-event-search{ display:flex; gap:10px; flex-wrap:wrap; align-items:stretch; max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-event-search-field{
  flex:1; min-width:220px; display:flex; align-items:center; gap:10px;
  border:1px solid var(--gdns-border); border-radius: var(--gdns-radius-full); padding:0 18px; background:#fff;
}
.gdns-event-search-field svg{ width:16px; height:16px; color: var(--gdns-text-light); flex:none; }
.gdns-event-search-field input{ border:none; outline:none; padding:13px 0; font-size:.92rem; font-family:inherit; flex:1; background:transparent; }
.gdns-event-search-category{
  border:1px solid var(--gdns-border); border-radius: var(--gdns-radius-full); padding:0 18px; font-size:.92rem;
  font-family:inherit; background:#fff; color: var(--gdns-text);
}
.gdns-event-search .gdns-btn-sm{ padding:11px 24px; }

/* ---- Event Categories ---- */
.gdns-event-categories{ display:flex; flex-wrap:wrap; gap:10px; max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-category-pill{
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--gdns-border); background:#fff;
  border-radius: var(--gdns-radius-full); padding:8px 18px; font-size:.86rem; font-weight:600; color: var(--gdns-text);
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-category-pill:hover{ border-color: var(--gdns-primary); color: var(--gdns-primary); }
.gdns-category-pill.gdns-active{ background: var(--gdns-primary); border-color: var(--gdns-primary); color:#fff; }
.gdns-category-count{ font-size:.74rem; opacity:.75; }

/* ---- Calendar Header ---- */
.gdns-calendar-header{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  max-width:1240px; margin-inline:auto; padding: 18px clamp(20px,5vw,64px);
}
.gdns-calendar-header h3{ margin:0; font-size:1.15rem; }
.gdns-view-switch{ display:flex; gap:6px; background: var(--gdns-bg-alt); border-radius: var(--gdns-radius-full); padding:4px; }
.gdns-view-switch a{
  padding:8px 18px; border-radius: var(--gdns-radius-full); font-size:.86rem; font-weight:600; color: var(--gdns-text-light);
}
.gdns-view-switch a.gdns-active{ background:#fff; color: var(--gdns-primary); box-shadow:0 4px 12px rgba(15,23,42,.08); }

/* ---- Event Countdown ---- */
.gdns-countdown{ text-align:center; max-width:560px; margin-inline:auto; padding: 30px clamp(20px,5vw,64px); }
.gdns-countdown-label{ display:block; font-size:.92rem; color: var(--gdns-text-light); margin-bottom:18px; }
.gdns-countdown-label strong{ color: var(--gdns-accent); font-family: var(--gdns-font-heading) !important; }
.gdns-countdown-units{ display:flex; justify-content:center; gap:18px; }
.gdns-countdown-unit{
  background:#fff; border:1px solid var(--gdns-border); border-radius:16px; padding:16px 14px; min-width:74px;
}
.gdns-countdown-value{ display:block; font-family: var(--gdns-font-heading) !important; font-size:1.8rem; font-weight:700; color: var(--gdns-primary); line-height:1; }
.gdns-countdown-name{ display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; color: var(--gdns-text-light); margin-top:6px; }
.gdns-countdown--empty p{ color: var(--gdns-text-light); font-weight:600; }
@media (max-width:480px){ .gdns-countdown-units{ gap:8px; } .gdns-countdown-unit{ min-width:60px; padding:12px 8px; } .gdns-countdown-value{ font-size:1.4rem; } }

/* ---- Event CTA (reuses .gdns-cta-band) ---- */
.gdns-event-cta{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }

/* ============================================================
   STEP 7 — LIVE TV WIDGETS
   ============================================================ */
.gdns-live-stream, .gdns-youtube-embed, .gdns-facebook-embed, .gdns-recent-videos,
.gdns-playlist, .gdns-watch-live-cta{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
}
.gdns-recent-videos h2, .gdns-playlist h3{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Live Stream (multi-source player) ---- */
.gdns-live-stream{
  position:relative; border-radius:28px; background: var(--gdns-accent); color:#fff;
  max-width:1240px; margin-inline:auto;
}
.gdns-live-stream:not(.gdns-live-stream--bradmax){ overflow:hidden; aspect-ratio:16/9; }
.gdns-live-stream-player, .gdns-live-stream-poster{ position:absolute; inset:0; width:100%; height:100%; }
.gdns-live-stream-poster img{ width:100%; height:100%; object-fit:cover; opacity:.55; }
.gdns-live-stream-player iframe, .gdns-live-stream-player video,
.gdns-live-stream-player .bradmax-player, .gdns-live-stream-player > div{ width:100%; height:100%; border:0; display:block; }
.gdns-live-stream-player video{ object-fit:cover; background:#000; }

/* Bradmax's own player script computes its own pixel height from the
   container's width and positions its control bar at the bottom of
   that calculated height. Forcing it into a fixed-aspect-ratio,
   overflow:hidden box (as the other source types use) clips that
   control bar whenever Bradmax's real output is taller than our
   guessed ratio. Instead, let Bradmax's wrapper size itself naturally
   in normal document flow, and clip rounded corners on that wrapper
   directly rather than on the outer section. */
.gdns-live-stream--bradmax .gdns-live-stream-player{
  position:static; inset:auto; width:100%; height:auto;
  border-radius:28px; overflow:hidden;
}
.gdns-live-stream--bradmax .gdns-live-stream-player > div{ height:auto !important; }

.gdns-live-stream-content{ position:absolute; left:0; bottom:0; z-index:2; padding:clamp(24px,4vw,46px); width:100%; pointer-events:none; }
.gdns-mute-toggle{
  position:absolute; top:18px; right:18px; z-index:3; width:42px; height:42px; border-radius:50%;
  background: rgba(15,23,42,.55); border:1px solid rgba(255,255,255,.4); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; backdrop-filter:blur(4px);
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-mute-toggle:hover{ background: var(--gdns-primary); border-color: var(--gdns-primary); }
.gdns-live-stream-content .gdns-live-badge{ pointer-events:auto; }
.gdns-live-stream-content h2{ color:#fff; max-width:560px; font-size:clamp(1.4rem,3vw,2rem); margin:16px 0 8px; }
.gdns-live-stream-content p{ color: rgba(255,255,255,.78); max-width:520px; margin:0; }

/* ---- Standalone YouTube / Facebook embeds ---- */
.gdns-youtube-embed, .gdns-facebook-embed{
  position:relative; aspect-ratio:16/9; border-radius:20px; overflow:hidden; max-width:1240px; margin-inline:auto;
}
.gdns-youtube-embed iframe, .gdns-facebook-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---- Recent Videos (reuses .gdns-card / .gdns-card-grid) ---- */
.gdns-recent-videos{ max-width:1240px; margin-inline:auto; padding: 60px clamp(20px,5vw,64px); }
.gdns-video-card{ display:block; text-decoration:none; }
.gdns-video-card .gdns-card-img{ position:relative; }
.gdns-play-circle{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%;
  background: rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(6px); color:#fff;
}
.gdns-play-circle--sm{ width:54px; height:54px; }
.gdns-play-circle--sm svg{ width:20px; height:20px; }
.gdns-play-circle--xs{ width:34px; height:34px; }
.gdns-play-circle--xs svg{ width:14px; height:14px; }
.gdns-video-duration{
  position:absolute; bottom:10px; right:10px; background: rgba(15,23,42,.8); color:#fff;
  font-size:.74rem; padding:3px 8px; border-radius:4px;
}
.gdns-video-card h3{ font-size:1.02rem; font-family: var(--gdns-font-body) !important; color: var(--gdns-accent); margin:0; }

/* ---- Playlist ---- */
.gdns-playlist{ max-width:380px; }
.gdns-playlist h3{ font-size:1rem; margin:0 0 16px; }
.gdns-playlist-list{ display:flex; flex-direction:column; gap:10px; }
.gdns-playlist-item{
  display:flex; align-items:center; gap:12px; padding:8px; border-radius:14px; border:1px solid transparent;
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-playlist-item:hover{ background: var(--gdns-bg-alt); }
.gdns-playlist-item.gdns-active{ border-color: var(--gdns-primary); background:#FFF6EE; }
.gdns-playlist-thumb{ position:relative; width:84px; height:60px; flex:none; border-radius:10px; overflow:hidden; }
.gdns-playlist-thumb img{ width:100%; height:100%; object-fit:cover; }
.gdns-playlist-info{ min-width:0; }
.gdns-playlist-title{ display:block; font-size:.88rem; font-weight:600; color: var(--gdns-accent); line-height:1.3; }
.gdns-playlist-duration{ display:block; font-size:.74rem; color: var(--gdns-text-light); margin-top:2px; }

/* ---- Watch Live CTA dark variant ---- */
.gdns-watch-live-cta{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }

/* ============================================================
   STEP 8 — DONATION WIDGETS
   ============================================================ */
.gdns-donation-hero, .gdns-reasons-to-donate, .gdns-donation-methods,
.gdns-qr-code, .gdns-progress-bar, .gdns-thank-you{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
}
.gdns-reasons-to-donate h2, .gdns-donation-methods h2, .gdns-qr-code h3,
.gdns-progress-bar h3, .gdns-thank-you h2, .gdns-donation-hero h1{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Donation Hero (extends .gdns-page-banner from Step 3) ---- */
.gdns-donation-hero h1{ color:#fff !important; }
.gdns-donation-hero-text{ color: rgba(255,255,255,.85); max-width:560px; margin:0 0 26px; font-size:1.05rem; }

/* ---- Reasons To Donate (reuses .gdns-feature-box) ---- */
.gdns-reasons-to-donate{ max-width:1240px; margin-inline:auto; padding: 60px clamp(20px,5vw,64px); }
.gdns-reasons-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:980px){ .gdns-reasons-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .gdns-reasons-grid{ grid-template-columns:1fr; } }

/* ---- Donation Methods ---- */
.gdns-donation-methods{ max-width:780px; margin-inline:auto; padding: 60px clamp(20px,5vw,64px); }
.gdns-donation-methods-list{ background:#fff; border:1px solid var(--gdns-border); border-radius:18px; padding:8px 22px; }
.gdns-method-row{ display:flex; align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid var(--gdns-border); }
.gdns-method-row:last-child{ border-bottom:none; }
.gdns-method-icon{
  width:44px; height:44px; flex:none; border-radius:12px; background: var(--gdns-bg-alt);
  color: var(--gdns-primary); display:flex; align-items:center; justify-content:center;
}
.gdns-method-text{ flex:1; min-width:0; }
.gdns-method-label{ font-size:.78rem; color: var(--gdns-text-light); text-transform:uppercase; letter-spacing:.05em; margin-bottom:3px; }
.gdns-method-value{ font-weight:600; color: var(--gdns-accent); word-break:break-word; }
.gdns-donation-methods-list .gdns-method-copy{
  width:36px; height:36px; flex:none; border-radius:10px; border:1px solid var(--gdns-border) !important;
  background:#fff !important; color: var(--gdns-text-light) !important; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition: all var(--gdns-speed) var(--gdns-ease);
  padding:0; box-shadow:none;
}
.gdns-donation-methods-list .gdns-method-copy:hover{
  background: var(--gdns-secondary) !important; border-color: var(--gdns-secondary) !important; color:#fff !important;
}
.gdns-donation-methods-list .gdns-method-copy.gdns-copied{
  background: var(--gdns-secondary) !important; border-color: var(--gdns-secondary) !important; color:#fff !important;
}
.gdns-donation-methods-list .gdns-method-copy svg{ display:block; pointer-events:none; }

/* ---- QR Code ---- */
.gdns-qr-code{
  text-align:center; max-width:320px; margin-inline:auto; padding:30px; background:#fff;
  border:1px solid var(--gdns-border); border-radius:20px;
}
.gdns-qr-image{ width:180px; height:180px; object-fit:contain; margin:0 auto 18px; border-radius:10px; border:1px solid var(--gdns-border); padding:8px; }
.gdns-qr-code h3{ font-size:1.1rem; margin:0 0 8px; }
.gdns-qr-code p{ font-size:.86rem; color: var(--gdns-text-light); margin:0; }

/* ---- Progress Bar ---- */
.gdns-progress-bar{ max-width:680px; margin-inline:auto; padding:28px; background:#fff; border:1px solid var(--gdns-border); border-radius:20px; }
.gdns-progress-bar h3{ font-size:1.1rem; margin:0 0 16px; }
.gdns-progress-track{ height:14px; border-radius:7px; background: var(--gdns-bg-alt); overflow:hidden; }
.gdns-progress-fill{ height:100%; background: var(--gdns-primary); border-radius:7px; transition: width 1.2s cubic-bezier(.22,.61,.36,1); }
.gdns-progress-meta{ display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-top:14px; font-size:.9rem; }
.gdns-progress-raised{ font-weight:700; color: var(--gdns-accent); }
.gdns-progress-raised span{ font-weight:400; color: var(--gdns-text-light); font-size:.82rem; }
.gdns-progress-percent{ font-weight:700; color: var(--gdns-primary); }
.gdns-progress-goal{ color: var(--gdns-text-light); }
.gdns-progress-donors{ margin:14px 0 0; font-size:.84rem; color: var(--gdns-text-light); }

/* ---- Thank You Section ---- */
.gdns-thank-you{
  text-align:center; max-width:640px; margin-inline:auto; padding:60px 30px; background:#fff;
  border:1px solid var(--gdns-border); border-radius:24px;
}
.gdns-thank-you-icon{
  width:74px; height:74px; border-radius:50%; background:linear-gradient(135deg,#FFE9D9,#FBE5C9);
  color: var(--gdns-primary); display:flex; align-items:center; justify-content:center; margin:0 auto 22px;
}
.gdns-thank-you h2{ font-size:clamp(1.5rem,3vw,2rem); margin:0 0 14px; }
.gdns-thank-you p{ color: var(--gdns-text-light); margin:0 0 26px; }

/* ============================================================
   STEP 9 — CONTACT WIDGETS
   ============================================================ */
.gdns-contact-info, .gdns-contact-form-widget, .gdns-department-cards,
.gdns-emergency-contact, .gdns-social-links-widget, .gdns-map-widget{
  font-family: var(--gdns-font-body) !important;
  color: var(--gdns-text);
}
.gdns-department-cards h2, .gdns-emergency-contact h3, .gdns-department-card h3{
  font-family: var(--gdns-font-heading) !important;
  color: var(--gdns-accent);
}

/* ---- Contact Info (reuses .gdns-feature-box) ---- */
.gdns-contact-info{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-contact-info-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
a.gdns-feature-box{ display:block; text-decoration:none; }
@media (max-width:900px){ .gdns-contact-info-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .gdns-contact-info-grid{ grid-template-columns:1fr; } }

/* ---- Contact Form ---- */
.gdns-contact-form-widget{ max-width:760px; }
.gdns-form-notice{ padding:14px 18px; border-radius:12px; font-size:.9rem; font-weight:600; margin-bottom:22px; }
.gdns-form-notice--success{ background:#ECFDF5; color:#047857; border:1px solid #A7F3D0; }
.gdns-form-notice--error{ background:#FEF2F2; color:#B91C1C; border:1px solid #FECACA; }
.gdns-form-honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.gdns-field{ margin-bottom:20px; flex:1; }
.gdns-field label{ display:block; font-size:.85rem; font-weight:600; color: var(--gdns-accent); margin-bottom:7px; }
.gdns-field input, .gdns-field select, .gdns-field textarea{
  width:100%; border:1px solid var(--gdns-border); border-radius:12px; padding:13px 16px;
  font-family:inherit; font-size:.95rem; color: var(--gdns-text); background:#fff;
  transition: border-color var(--gdns-speed);
}
.gdns-field input:focus, .gdns-field select:focus, .gdns-field textarea:focus{ border-color: var(--gdns-primary); outline:none; }
.gdns-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:620px){ .gdns-field-row{ grid-template-columns:1fr; } }

/* ---- Department Cards ---- */
.gdns-department-cards{ max-width:1240px; margin-inline:auto; padding: 60px clamp(20px,5vw,64px); }
.gdns-department-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.gdns-department-card{
  text-align:center; padding:28px 20px; background:#fff; border:1px solid var(--gdns-border); border-radius:18px;
  transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-department-card:hover{ border-color: var(--gdns-primary); box-shadow:0 10px 28px rgba(15,23,42,.08); transform:translateY(-3px); }
.gdns-department-card h3{ font-size:1.02rem; margin:0 0 6px; }
.gdns-department-contact{ display:block; font-size:.84rem; color: var(--gdns-text-light); margin-bottom:10px; }
.gdns-department-link{ display:block; font-size:.86rem; color: var(--gdns-secondary); font-weight:600; }
.gdns-department-link:hover{ color: var(--gdns-primary); }
@media (max-width:900px){ .gdns-department-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .gdns-department-grid{ grid-template-columns:1fr; } }

/* ---- Emergency Contact ---- */
.gdns-emergency-contact{
  display:flex; align-items:center; gap:20px; flex-wrap:wrap; background: var(--gdns-accent); color:#fff;
  border-radius:24px; padding:28px clamp(20px,4vw,40px); max-width:1240px; margin-inline:auto;
}
.gdns-emergency-icon{
  width:54px; height:54px; flex:none; border-radius:50%; background: var(--gdns-primary); color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.gdns-emergency-text{ flex:1; min-width:220px; }
.gdns-emergency-text h3{ color:#fff; font-size:1.1rem; margin:0 0 4px; }
.gdns-emergency-text p{ color: rgba(255,255,255,.78); font-size:.88rem; margin:0; }
.gdns-emergency-call{ flex:none; }

/* ---- Social Links ---- */
.gdns-social-links-widget{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.gdns-social-links-heading{ font-weight:600; color: var(--gdns-accent); font-size:.92rem; }
.gdns-social-links{ display:flex; gap:10px; }
.gdns-social-links a{
  width:42px; height:42px; border-radius:50%; background: var(--gdns-bg-alt); color: var(--gdns-accent);
  display:flex; align-items:center; justify-content:center; transition: all var(--gdns-speed) var(--gdns-ease);
}
.gdns-social-links a:hover{ background: var(--gdns-primary); color:#fff; transform:translateY(-2px); }

/* ---- Map ---- */
.gdns-map-widget{ max-width:1240px; margin-inline:auto; padding-inline: clamp(20px,5vw,64px); }
.gdns-map{ width:100%; height:420px; border-radius:24px; overflow:hidden; border:1px solid var(--gdns-border); }
.gdns-map iframe{ width:100%; height:100%; border:0; display:block; }
.gdns-map-directions{ display:inline-flex; margin-top:20px; }

/* ============================================================
   VISITOR ETIQUETTE WIDGET
   ============================================================ */
.gdns-visitor-etiquette{
  position:relative; overflow:hidden; max-width:1240px; margin-inline:auto;
  padding: 70px clamp(20px,5vw,64px); font-family: var(--gdns-font-body) !important;
}
.gdns-etiquette-watermark{
  position:absolute; top:-40px; right:-60px; width:340px; height:340px; color: var(--gdns-border);
  opacity:.7; pointer-events:none; z-index:0;
}
.gdns-etiquette-watermark svg{ width:100%; height:100%; }
.gdns-etiquette-grid{
  position:relative; z-index:1; display:grid; grid-template-columns:1fr 1.1fr; gap:60px; align-items:center;
}
.gdns-etiquette-image-right{ direction:rtl; }
.gdns-etiquette-image-right > *{ direction:ltr; }
.gdns-etiquette-image{ position:relative; border-radius:4px; overflow:hidden; }
.gdns-etiquette-image img{ width:100%; height:auto; display:block; aspect-ratio:4/3.1; object-fit:cover; }
.gdns-etiquette-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px;
  border:1px solid rgba(255,255,255,.7); background: rgba(15,23,42,.35); color:#fff; cursor:pointer;
  backdrop-filter:blur(2px); border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.gdns-etiquette-play svg{ width:22px; height:22px; margin-left:3px; }
.gdns-etiquette-play:hover{ background: var(--gdns-primary); border-color: var(--gdns-primary); }
.gdns-etiquette-video-frame{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.gdns-etiquette-heading{
  font-family: var(--gdns-font-heading) !important; text-transform:uppercase; letter-spacing:.04em;
  font-size:clamp(1.6rem,2.8vw,2.1rem); color: var(--gdns-accent); margin:0 0 18px; font-weight:800;
}
.gdns-etiquette-description{ color: var(--gdns-text-light); line-height:1.7; margin:0 0 28px; max-width:560px; }
.gdns-etiquette-list{ list-style:none; margin:0; padding:0; }
.gdns-etiquette-list li{
  display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px solid var(--gdns-border);
  color: var(--gdns-text); line-height:1.5;
}
.gdns-etiquette-list li:last-child{ border-bottom:none; }
.gdns-etiquette-check{
  width:22px; height:22px; flex:none; border-radius:50%; background:#16A34A; color:#fff;
  display:flex; align-items:center; justify-content:center; margin-top:2px;
}
.gdns-etiquette-check svg{ width:13px; height:13px; }
@media (max-width:900px){
  .gdns-etiquette-grid{ grid-template-columns:1fr; gap:34px; }
  .gdns-etiquette-image-right{ direction:ltr; }
  .gdns-etiquette-watermark{ width:220px; height:220px; top:-20px; right:-40px; }
}

