/* ==========================================================
DBC – SITE WIDE STYLES (INSPO, VENDORS, FORMS, PORTAL THEMES)
Clean, safe, and copy paste ready (CONSOLIDATED + STABILIZED)
========================================================== */


/* =========================
0) Global Safety Helpers
========================= */
*{ box-sizing:border-box; }


/* =========================
1) Hover Utility
========================= */
.hover-box{
  transition: transform .3s ease, box-shadow .3s ease;
  cursor: pointer;
}
.hover-box:hover{
  transform: scale(1.03);
  box-shadow:0 10px 20px rgba(0,0,0,.30);
}


/* =========================
2) Inspo Gallery
========================= */
.user-inspo-gallery{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
}
.inspo-item{
  border:1px solid #ddd;
  padding:15px;
  width: calc(33% - 20px);
  background:#fff;
  border-radius:8px;
  box-shadow:0 2px 6px rgba(0,0,0,.10);
  transition: box-shadow .3s ease;
}
.inspo-item:hover{
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.inspo-item img{
  max-width:100%;
  height:auto;
  display:block;
  margin-bottom:10px;
  border-radius:5px;
}
.inspo-item h3{
  font-size:1.2rem;
  margin-bottom:8px;
  color:#333;
}
.inspo-item p{
  font-size:1rem;
  color:#555;
  margin-bottom:12px;
}
.inspo-item a{
  color:#e74c3c;
  font-weight:700;
  text-decoration:none;
}
.inspo-item a:hover{ text-decoration:underline; }

@media (max-width:900px){
  .inspo-item{ width: calc(50% - 20px); }
}
@media (max-width:600px){
  .inspo-item{ width:100%; }
}

/* Inspo Board Thumbnail Sizing */
.dbc-inspo-image-wrapper{
  width:200px;
  height:200px;
  overflow:hidden;
  border-radius:12px;
  margin-bottom:10px;
}
.dbc-inspo-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}


/* =========================
3) Directorist Vendor Styling
========================= */

/* Hide default gray icons */
.directorist-single-info_label i{ display:none; }

/* Add emoji icons based on exact order */
.directorist-single-info:nth-of-type(1) .directorist-single-info_label::before{ content:"🏢 "; }
.directorist-single-info:nth-of-type(2) .directorist-single-info_label::before{ content:"👰‍♀️ "; }
.directorist-single-info:nth-of-type(3) .directorist-single-info_label::before{ content:"📧 "; }
.directorist-single-info:nth-of-type(4) .directorist-single-info_label::before{ content:"🎯 "; }
.directorist-single-info:nth-of-type(5) .directorist-single-info_label::before{ content:"📍 "; }
.directorist-single-info:nth-of-type(6) .directorist-single-info_label::before{ content:"🗺️ "; }
.directorist-single-info:nth-of-type(7) .directorist-single-info_label::before{ content:"💰 "; }
.directorist-single-info:nth-of-type(9) .directorist-single-info_label::before{ content:"🌐 "; }

/* Hide the first keyword search row (not the filters) */
.directorist-search-keyword{ display:none !important; }

/* Vendor card style */
.directorist-listing-item{
  border-radius:24px;
  box-shadow:0 10px 20px rgba(0,0,0,.08);
  border:2px solid #ffe3f1;
  overflow:hidden;
  transition: all .3s ease;
  position:relative;
  background:#fff;
}
.directorist-listing-item:hover{
  transform: scale(1.02);
  border-color:#bbd4ff;
  box-shadow:0 12px 30px rgba(187,212,255,.40);
}
.directorist-listing-thumb img{
  height:220px;
  width:100%;
  object-fit:cover;
  border-top-left-radius:24px;
  border-top-right-radius:24px;
}
.directorist-listing-content{
  padding:20px;
  text-align:center;
}
.directorist-listing-title{
  font-size:1.3rem;
  font-weight:800;
  color:#1c1c1c;
  margin-bottom:8px;
}
.directorist-listing-meta{
  font-size:.95rem;
  color:#888;
  margin-bottom:12px;
}
.directorist-view-listing{
  display:inline-block;
  background: linear-gradient(135deg,#f784b3,#bbd4ff);
  color:#fff;
  padding:10px 20px;
  border-radius:30px;
  text-decoration:none;
  font-weight:800;
  transition: all .3s ease;
}
.directorist-view-listing:hover{
  background: linear-gradient(135deg,#e14f8c,#7aa4f7);
  color:#fff;
}
.directorist-listing-item.featured::before{
  content:"💎 Featured";
  position:absolute;
  top:12px;
  left:12px;
  background:#ffd700;
  color:#fff;
  font-size:.75rem;
  padding:6px 10px;
  border-radius:12px;
  font-weight:900;
  box-shadow:0 3px 6px rgba(0,0,0,.10);
  z-index:2;
}


/* =========================
4) Gutenberg Full Width Cover Fix
========================= */
.wp-block-cover{
  width:100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}


/* =========================
5) WPForms Styling
========================= */
.wpforms-form .dbc-intro{ text-align:center; margin-bottom:18px; }

.wpforms-form .dbc-intro .dbc-badge{
  display:inline-block;
  padding:8px 16px;
  border-radius:999px;
  background: linear-gradient(90deg,#F4C2D7,#D7A7C3);
  color:#1E1B26;
  font-weight:800;
  letter-spacing:.3px;
  box-shadow:0 6px 18px rgba(30,27,38,.08);
}

.wpforms-form h2{
  font-size:28px;
  margin:10px 0 6px 0;
  color:#1E1B26;
}
.wpforms-form p{ color:#5b5366; }

.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="url"],
.wpforms-form input[type="number"],
.wpforms-form textarea,
.wpforms-form select{
  border:1px solid #eadbe5;
  background:#fff7fb;
  border-radius:12px;
  padding:12px 14px;
}

.wpforms-submit{
  background: linear-gradient(90deg,#D7A7C3,#F4C2D7);
  color:#1E1B26;
  font-weight:900;
  border:none;
  border-radius:999px;
  padding:12px 22px;
  box-shadow:0 6px 18px rgba(30,27,38,.12);
  transition:.2s;
}
.wpforms-submit:hover{
  transform: translateY(-1px);
  box-shadow:0 10px 22px rgba(30,27,38,.18);
}


/* =========================
6) Feature Submission Banner
========================= */
.dbc-feature-banner{
  background: linear-gradient(135deg, #fff7fb 0%, #f4c2d7 40%, #d7a7c3 100%);
  padding:80px 20px;
  text-align:center;
  border-radius:0 0 60px 60px;
  box-shadow:0 6px 20px rgba(30,27,38,.08);
  position:relative;
  overflow:hidden;
}
.dbc-feature-banner::after{
  content:"";
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.30) 0%, transparent 70%);
  animation: sparkleMove 6s infinite linear;
  pointer-events:none;
}
@keyframes sparkleMove{
  from{ background-position:0 0; }
  to{ background-position:100% 100%; }
}

.dbc-feature-content{
  max-width:800px;
  margin:0 auto;
  color:#1E1B26;
}
.dbc-feature-badge{
  display:inline-block;
  background:#fff;
  color:#1E1B26;
  font-weight:900;
  border-radius:999px;
  padding:10px 18px;
  margin-bottom:14px;
  box-shadow:0 6px 14px rgba(30,27,38,.08);
  text-transform:uppercase;
  letter-spacing:.8px;
}
.dbc-feature-content h1{
  font-family:'Playfair Display', serif;
  font-size:42px;
  font-weight:900;
  margin:10px 0;
  color:#1E1B26;
}
.dbc-feature-content h1 span{
  color:#6b5a7e;
  text-shadow:0 0 10px rgba(244,194,215,.60);
}
.dbc-feature-content p{
  font-family:'Poppins', sans-serif;
  font-size:18px;
  line-height:1.6;
  color:#5b5366;
  margin:20px auto 40px;
}
.dbc-feature-btn{
  display:inline-block;
  background: linear-gradient(90deg,#D7A7C3,#F4C2D7);
  color:#1E1B26;
  font-weight:900;
  font-size:18px;
  padding:14px 32px;
  border-radius:999px;
  text-decoration:none;
  box-shadow:0 6px 18px rgba(30,27,38,.12);
  transition: all .2s ease-in-out;
}
.dbc-feature-btn:hover{
  transform: translateY(-2px);
  box-shadow:0 10px 24px rgba(30,27,38,.18);
}


/* =========================
7) Seating Chart Styles
========================= */
#dbc-seating-chart-builder{
  background:#fffaf6;
  border-radius:16px;
  padding:16px;
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}
.dbc-seating-header{ margin-bottom:8px; }
.dbc-seating-chart-controls{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  font-size:13px;
}
.dbc-seating-chart-controls input,
.dbc-seating-chart-controls select{
  padding:4px 8px;
  font-size:13px;
}
.dbc-seating-chart-controls button{
  padding:6px 10px;
  font-size:13px;
}
.dbc-seating-summary{
  margin-top:8px;
  font-size:13px;
  font-weight:600;
}
.dbc-seating-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:16px;
  margin-top:16px;
}
.dbc-seating-guests{
  background:#fff;
  border-radius:12px;
  padding:12px;
  max-height:600px;
  overflow-y:auto;
}
#dbc-guest-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:8px;
}
.dbc-guest-chip{
  border-radius:999px;
  padding:6px 10px;
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  font-size:13px;
  text-align:left;
  cursor:pointer;
}
.dbc-guest-chip.selected{ background:#ffe6ef; border-color:#ffbad0; }
.dbc-guest-chip.seated{ background:#e4f8f5; border-color:#63c5da; }

.dbc-seating-canvas-wrapper{
  background:#fff;
  border-radius:12px;
  padding:12px;
  min-height:400px;
}
.dbc-table-toolbar{ margin-bottom:10px; }
#dbc-seating-canvas{ display:flex; flex-wrap:wrap; gap:16px; }

.dbc-table{
  background:#fffaf6;
  border-radius:999px;
  padding:10px;
  min-width:180px;
  max-width:220px;
  box-shadow:0 2px 6px rgba(0,0,0,.04);
  position:relative;
}
.dbc-table-header{
  font-weight:700;
  text-align:center;
  margin-bottom:4px;
}
.dbc-table-controls{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-bottom:6px;
}
.dbc-table-controls button{
  font-size:10px;
  padding:2px 6px;
}
.dbc-seats-wrapper{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:center;
}
.dbc-seat{
  width:32px;
  height:32px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  font-size:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  background:#fff;
}
.dbc-seat.assigned{
  background: rgba(99,197,218,.12);
  border-color:#63c5da;
  font-weight:800;
}
.dbc-seat-controls{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-bottom:6px;
}
.dbc-seat-controls button{
  font-size:10px;
  padding:2px 6px;
}
@media (max-width:980px){
  .dbc-seating-layout{ grid-template-columns:1fr; }
}


/* =========================
8) Ceremony Order Builder Styles
========================= */
.dbc-ceremony-builder{
  max-width:1100px;
  margin:0 auto 40px;
  padding:24px 20px 32px;
  background:#fffaf6;
  border-radius:18px;
  box-shadow:0 10px 30px rgba(0,0,0,.04);
  font-family:inherit;
}
.dbc-ceremony-intro h1{ font-size:26px; margin:0 0 6px; }
.dbc-ceremony-intro p{ margin:0 0 14px; font-size:14px; color:#555; }

.dbc-section{ margin-bottom:32px; }
.dbc-section h2{ margin-bottom:6px; font-size:20px; }
.dbc-section p{ margin:0 0 16px; font-size:14px; color:#666; }

.dbc-item-form{
  background:#fff;
  border-radius:14px;
  padding:16px 14px 18px;
  border:1px solid #f3e3dd;
}
.dbc-item-form label{
  display:block;
  font-weight:800;
  margin-top:10px;
  font-size:13px;
}
.dbc-item-form input[type="text"],
.dbc-item-form textarea,
.dbc-item-form select{
  width:100%;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid #ddd;
  font-size:14px;
  margin-top:4px;
  background:#fff;
}
.dbc-item-form input[type="text"]:focus,
.dbc-item-form textarea:focus,
.dbc-item-form select:focus{
  outline:none;
  border-color:#ffb7c5;
  box-shadow:0 0 0 2px rgba(255,183,197,.35);
}

.dbc-item-sections{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:4px;
}
.dbc-item-sections label{
  margin:0;
  padding:6px 10px;
  border-radius:999px;
  background:#fff7f9;
  border:1px solid #f8d4dd;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
}
.dbc-item-sections input[type="checkbox"]{ margin-right:6px; }

.dbc-inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  font-size:13px;
}

#dbc-add-item-btn{
  margin-top:14px;
  padding:9px 18px;
  border-radius:999px;
  border:none;
  cursor:pointer;
  background: linear-gradient(135deg,#ffb7c5,#ff9fb9);
  color:#3b2a2a;
  font-weight:800;
  font-size:13px;
  box-shadow:0 4px 10px rgba(255,159,185,.45);
  transition: transform .08s ease, box-shadow .08s ease;
}
#dbc-add-item-btn:hover{
  transform: translateY(-1px);
  box-shadow:0 6px 16px rgba(255,159,185,.55);
}

.dbc-columns{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.dbc-column{
  flex:1 1 30%;
  min-width:260px;
  background:#fff;
  padding:12px;
  border-radius:14px;
  border:1px solid #f1e2da;
}
.dbc-column h3{ margin:0 0 8px; font-size:16px; }
.dbc-sortable-list{ list-style:none; margin:0; padding:0; min-height:40px; }

.dbc-item-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:#fff9f3;
  border-radius:10px;
  padding:8px 10px;
  margin-bottom:6px;
  cursor:grab;
  font-size:13px;
  border:1px solid #f3e0d6;
}
.dbc-item-main{ flex:1 1 auto; margin-right:6px; }
.dbc-item-main strong{ display:block; margin-bottom:2px; }
.dbc-item-sub{ font-size:11px; color:#777; }

.dbc-remove-item{
  background:transparent;
  border:none;
  font-size:18px;
  cursor:pointer;
  padding:0 4px;
  color:#bb4b4b;
}
.dbc-remove-item:hover{ color:#e06565; }

.dbc-actions{
  margin-top:16px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
#dbc-save-btn,
#dbc-reset-btn{
  padding:8px 16px;
  border-radius:999px;
  border:none;
  cursor:pointer;
  font-weight:800;
  font-size:13px;
}
#dbc-save-btn{
  background: linear-gradient(135deg,#ffb7c5,#ff9fb9);
  color:#3b2a2a;
  box-shadow:0 4px 10px rgba(255,159,185,.45);
}
#dbc-reset-btn{
  background:#f1f1f1;
  color:#555;
}

.dbc-notes-preview{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
}
.dbc-notes,
.dbc-program-preview{
  flex:1 1 48%;
  min-width:260px;
}
#dbc-notes-textarea{
  width:100%;
  border-radius:10px;
  border:1px solid #ddd;
  padding:10px;
  font-size:13px;
  min-height:150px;
  background:#fff;
}
#dbc-notes-textarea:focus{
  outline:none;
  border-color:#ffb7c5;
  box-shadow:0 0 0 2px rgba(255,183,197,.35);
}
.dbc-program-preview h3{ margin:0 0 4px; }
.dbc-program-preview p{ margin:0 0 10px; font-size:13px; color:#666; }

#dbc-program-output h4{ margin:12px 0 4px; font-size:15px; }
#dbc-program-output ul{ margin:0 0 8px 18px; padding:0; }
#dbc-program-output li{ font-size:13px; margin-bottom:2px; }

@media (max-width:768px){
  .dbc-ceremony-builder{ padding:18px 14px 24px; }
  .dbc-columns{ flex-direction:column; }
  .dbc-column{ min-width:100%; }
  .dbc-notes-preview{ flex-direction:column; }
}


/* =========================
9) Homepage Tweaks
========================= */
body.home .entry-content{
  max-width:1400px;
  margin:0 auto;
}
body.home .dbc-home{
  width:100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
body.home .dbc-home .dbc-card-text,
body.home .dbc-home .dbc-list,
body.home .dbc-home .dbc-list li,
body.home .dbc-home .dbc-compare-table td,
body.home .dbc-home .dbc-section-subtitle,
body.home .dbc-home .dbc-coming-list li{
  font-size:17px;
  line-height:1.9;
  color:#111827;
}
body.home .dbc-home .dbc-portal-card{ padding:52px 42px; }

@media (min-width:1200px){
  body.home .dbc-home .dbc-two-col,
  body.home .dbc-home .dbc-featured-row,
  body.home .dbc-home .dbc-video-grid,
  body.home .dbc-home .dbc-table-shell,
  body.home .dbc-home .dbc-coming-card{
    max-width:1400px;
  }
}


/* ==========================================================
10) DBC PORTAL THEME SYSTEM (SCOPED + THEME-AWARE CARD TEXT)
========================================================== */

/* Gate: portal pages only (body class OR wrapper class) */
body.dbc-portal,
.dbc-portal{
  --dbc-accent:#63c5da;
  --dbc-accent-2:#ffe6ef;
  --dbc-btn-text:#2b2435;

  --dbc-bg:
    radial-gradient(1200px 700px at 15% 0%, rgba(99,197,218,0.35), transparent 60%),
    radial-gradient(900px 700px at 90% 25%, rgba(255,230,239,0.35), transparent 55%),
    linear-gradient(180deg, rgba(247,251,255,1), rgba(240,252,255,1));

  /* Card text defaults (theme-aware) */
  --dbc-card-title: #111827;
  --dbc-card-tagline: rgba(17,24,39,.72);
  --dbc-card-link: #111827;

  background: var(--dbc-bg) !important;
  color:#111827 !important;
}

/* Make theme bg visible (no white wrappers) */
body.dbc-portal .site,
body.dbc-portal .site-content,
body.dbc-portal .content-area,
body.dbc-portal main,
.dbc-portal .site,
.dbc-portal .site-content,
.dbc-portal .content-area,
.dbc-portal main{
  background: transparent !important;
}

/* Theme presets on body OR wrapper */
body.dbc-portal.dbc-theme-ocean,
.dbc-portal.dbc-theme-ocean{
  --dbc-accent:#63c5da;
  --dbc-accent-2:#ffe6ef;
  --dbc-btn-text:#2b2435;

  --dbc-card-title:#0f2a33;
  --dbc-card-tagline:rgba(15,42,51,.72);
  --dbc-card-link:#0f2a33;

  --dbc-bg:
    radial-gradient(1200px 700px at 15% 0%, rgba(99,197,218,0.45), transparent 60%),
    radial-gradient(900px 700px at 90% 25%, rgba(255,230,239,0.40), transparent 55%),
    linear-gradient(180deg, rgba(247,251,255,1), rgba(235,252,255,1));
  background: var(--dbc-bg) !important;
}
body.dbc-portal.dbc-theme-champagne,
.dbc-portal.dbc-theme-champagne{
  --dbc-accent:#d9b36c;
  --dbc-accent-2:#fff1dc;
  --dbc-btn-text:#2b2435;

  --dbc-card-title:#3b2f23;
  --dbc-card-tagline:rgba(59,47,35,.70);
  --dbc-card-link:#3b2f23;

  --dbc-bg:
    radial-gradient(1100px 700px at 18% 0%, rgba(217,179,108,0.50), transparent 60%),
    radial-gradient(900px 700px at 92% 22%, rgba(255,241,220,0.70), transparent 55%),
    linear-gradient(180deg, rgba(251,247,242,1), rgba(255,250,245,1));
  background: var(--dbc-bg) !important;
}
body.dbc-portal.dbc-theme-sage,
.dbc-portal.dbc-theme-sage{
  --dbc-accent:#78b28a;
  --dbc-accent-2:#dff3e5;
  --dbc-btn-text:#2b2435;

  --dbc-card-title:#1f3526;
  --dbc-card-tagline:rgba(31,53,38,.72);
  --dbc-card-link:#1f3526;

  --dbc-bg:
    radial-gradient(1100px 700px at 15% 0%, rgba(120,178,138,0.55), transparent 62%),
    radial-gradient(900px 700px at 92% 24%, rgba(223,243,229,0.80), transparent 58%),
    linear-gradient(180deg, rgba(244,250,245,1), rgba(236,252,241,1));
  background: var(--dbc-bg) !important;
}
body.dbc-portal.dbc-theme-blush,
.dbc-portal.dbc-theme-blush{
  --dbc-accent:#ff7fa8;
  --dbc-accent-2:#ffe1eb;
  --dbc-btn-text:#2b2435;

  --dbc-card-title:#3b2130;
  --dbc-card-tagline:rgba(59,33,48,.72);
  --dbc-card-link:#3b2130;

  --dbc-bg:
    radial-gradient(1100px 700px at 15% 0%, rgba(255,127,168,0.55), transparent 62%),
    radial-gradient(900px 700px at 92% 24%, rgba(255,225,235,0.80), transparent 58%),
    linear-gradient(180deg, rgba(255,247,251,1), rgba(255,238,246,1));
  background: var(--dbc-bg) !important;
}
body.dbc-portal.dbc-theme-mono,
.dbc-portal.dbc-theme-mono{
  --dbc-accent:#111111;
  --dbc-accent-2:#d9d9df;
  --dbc-btn-text:#ffffff;

  --dbc-card-title:#111111;
  --dbc-card-tagline:rgba(17,17,17,.72);
  --dbc-card-link:#111111;

  --dbc-bg:
    radial-gradient(1100px 700px at 18% 0%, rgba(0,0,0,0.18), transparent 62%),
    radial-gradient(900px 700px at 92% 25%, rgba(217,217,223,0.65), transparent 58%),
    linear-gradient(180deg, rgba(248,248,250,1), rgba(240,240,245,1));
  background: var(--dbc-bg) !important;
}
body.dbc-portal.dbc-theme-grey,
body.dbc-portal.dbc-theme-gray,
.dbc-portal.dbc-theme-grey,
.dbc-portal.dbc-theme-gray{
  --dbc-accent:#7c7c8c;
  --dbc-accent-2:#e7e7ef;
  --dbc-btn-text:#2b2435;

  --dbc-card-title:#242433;
  --dbc-card-tagline:rgba(36,36,51,.72);
  --dbc-card-link:#242433;

  --dbc-bg:
    radial-gradient(1100px 700px at 15% 0%, rgba(124,124,140,0.38), transparent 62%),
    radial-gradient(900px 700px at 92% 25%, rgba(231,231,239,0.90), transparent 58%),
    linear-gradient(180deg, rgba(245,245,248,1), rgba(238,238,244,1));
  background: var(--dbc-bg) !important;
}
body.dbc-portal.dbc-theme-plum,
.dbc-portal.dbc-theme-plum{
  --dbc-accent:#6a2c70;
  --dbc-accent-2:#f2c7ff;
  --dbc-btn-text:#2b2435;

  --dbc-card-title:#2f1736;
  --dbc-card-tagline:rgba(47,23,54,.72);
  --dbc-card-link:#2f1736;

  --dbc-bg:
    radial-gradient(1100px 700px at 15% 0%, rgba(106,44,112,0.45), transparent 62%),
    radial-gradient(900px 700px at 92% 25%, rgba(242,199,255,0.75), transparent 58%),
    linear-gradient(180deg, rgba(251,245,251,1), rgba(246,238,248,1));
  background: var(--dbc-bg) !important;
}

/* Portal base readable text */
body.dbc-portal,
.dbc-portal{
  --dbc-btn-bg: linear-gradient(135deg, var(--dbc-accent), var(--dbc-accent-2));
  --dbc-btn-bg-hover: linear-gradient(135deg, var(--dbc-accent-2), var(--dbc-accent));
}

/* Keep regular text readable */
body.dbc-portal p,
body.dbc-portal li,
body.dbc-portal span,
.dbc-portal p,
.dbc-portal li,
.dbc-portal span{
  color:#111827 !important;
}

/* Accent links (general) */
body.dbc-portal a,
body.dbc-portal a:visited,
.dbc-portal a,
.dbc-portal a:visited{
  color: var(--dbc-accent) !important;
}

/* Gradient headings (ONLY headings) */
body.dbc-portal h1,
body.dbc-portal h2,
body.dbc-portal h3,
body.dbc-portal .dbc-gradient-title,
.dbc-portal h1,
.dbc-portal h2,
.dbc-portal h3,
.dbc-portal .dbc-gradient-title{
  background: linear-gradient(90deg, var(--dbc-accent), var(--dbc-accent-2)) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
}

/* Portal buttons */
body.dbc-portal button,
body.dbc-portal .button,
body.dbc-portal a.button,
body.dbc-portal .wp-element-button,
body.dbc-portal .wp-block-button__link,
body.dbc-portal input[type="submit"],
.dbc-portal button,
.dbc-portal .button,
.dbc-portal a.button,
.dbc-portal .wp-element-button,
.dbc-portal .wp-block-button__link,
.dbc-portal input[type="submit"]{
  background: var(--dbc-btn-bg) !important;
  color: var(--dbc-btn-text) !important;
  border:0 !important;
  border-radius:999px !important;
  font-weight:900 !important;
  padding:12px 22px !important;
  box-shadow:0 12px 26px rgba(30,27,38,.14) !important;
  text-decoration:none !important;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease !important;
}
body.dbc-portal button:hover,
body.dbc-portal .button:hover,
body.dbc-portal a.button:hover,
body.dbc-portal .wp-element-button:hover,
body.dbc-portal .wp-block-button__link:hover,
body.dbc-portal input[type="submit"]:hover,
.dbc-portal button:hover,
.dbc-portal .button:hover,
.dbc-portal a.button:hover,
.dbc-portal .wp-element-button:hover,
.dbc-portal .wp-block-button__link:hover,
.dbc-portal input[type="submit"]:hover{
  background: var(--dbc-btn-bg-hover) !important;
  transform: translateY(-1px) !important;
  box-shadow:0 18px 40px rgba(30,27,38,.18) !important;
  filter:saturate(1.08) !important;
}

/* Focus rings */
body.dbc-portal button:focus,
body.dbc-portal button:focus-visible,
body.dbc-portal input:focus,
body.dbc-portal select:focus,
body.dbc-portal textarea:focus,
.dbc-portal button:focus,
.dbc-portal button:focus-visible,
.dbc-portal input:focus,
.dbc-portal select:focus,
.dbc-portal textarea:focus{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(99,197,218,.22) !important;
  border-color: rgba(99,197,218,.30) !important;
}

/* Portal cards glass look */
body.dbc-portal .dbc-portal-card,
.dbc-portal .dbc-portal-card{
  background: rgba(255,255,255,.75) !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 14px 36px rgba(30,27,38,.14),
    0 0 0 1px rgba(255,255,255,.55),
    0 0 42px rgba(99,197,218,.18) !important;
  transition: transform .12s ease, box-shadow .12s ease !important;
}
body.dbc-portal .dbc-portal-card:hover,
.dbc-portal .dbc-portal-card:hover{
  transform: translateY(-2px);
  box-shadow:
    0 26px 60px rgba(30,27,38,.22),
    0 0 0 1px rgba(255,255,255,.75),
    0 0 70px rgba(99,197,218,.28) !important;
}

/* FINAL: Theme-aware portal card text (kills blue, matches theme) */
body.dbc-portal a.dbc-portal-card,
body.dbc-portal a.dbc-portal-card:visited,
body.dbc-portal a.dbc-portal-card:hover,
body.dbc-portal a.dbc-portal-card:active,
body.dbc-portal a.dbc-portal-card:focus,
.dbc-portal a.dbc-portal-card,
.dbc-portal a.dbc-portal-card:visited,
.dbc-portal a.dbc-portal-card:hover,
.dbc-portal a.dbc-portal-card:active,
.dbc-portal a.dbc-portal-card:focus{
  color: var(--dbc-card-link, #111827) !important;
  text-decoration:none !important;
}
body.dbc-portal a.dbc-portal-card .dbc-portal-label,
.dbc-portal a.dbc-portal-card .dbc-portal-label{
  color: var(--dbc-card-title, #111827) !important;
}
body.dbc-portal a.dbc-portal-card .dbc-portal-tagline,
.dbc-portal a.dbc-portal-card .dbc-portal-tagline{
  color: var(--dbc-card-tagline, rgba(17,24,39,.72)) !important;
}
/* Keep child nodes from turning link-blue */
body.dbc-portal a.dbc-portal-card *,
.dbc-portal a.dbc-portal-card *{
  color: inherit !important;
  text-decoration:none !important;
}

/* Hover label = gradient (optional, still works with neutral title via background-clip) */
body.dbc-portal a.dbc-portal-card:hover .dbc-portal-label,
.dbc-portal a.dbc-portal-card:hover .dbc-portal-label{
  background: linear-gradient(135deg, var(--dbc-accent), var(--dbc-accent-2)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
}

/* Prevent white trays behind buttons */
body.dbc-portal .wp-block-buttons,
body.dbc-portal .wp-block-button,
body.dbc-portal .wpforms-submit-container,
.dbc-portal .wp-block-buttons,
.dbc-portal .wp-block-button,
.dbc-portal .wpforms-submit-container{
  background: transparent !important;
  box-shadow:none !important;
  border:0 !important;
}


/* ==========================================================
11) THEME PICKER UI
========================================================== */

.dbc-theme-picker{
  display:block !important;
  width:100% !important;
  padding:18px 0 44px !important;
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  color:#2b2435 !important;
}
.dbc-theme-picker *{ box-sizing:border-box !important; }

.dbc-theme-wrap{
  width:min(1140px, 92vw) !important;
  margin:0 auto !important;
}
.dbc-theme-grid{
  display:grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap:14px !important;
}
@media (max-width:980px){
  .dbc-theme-grid{ grid-template-columns: 1fr !important; }
}

.dbc-theme-option{
  position:relative !important;
  display:block !important;
  cursor:pointer !important;
  background: rgba(255,255,255,.62) !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  border-radius:16px !important;
  padding:14px !important;
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  transition: transform .12s ease, box-shadow .12s ease !important;
}
.dbc-theme-option:hover{
  box-shadow:0 18px 36px rgba(0,0,0,.12) !important;
  transform: translateY(-2px) !important;
}
.dbc-theme-option.is-active{
  outline:2px solid var(--dbc-accent, #63c5da) !important;
}
.dbc-theme-option input{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.dbc-theme-swatch{
  display:block !important;
  height:92px !important;
  border-radius:14px !important;
  margin-bottom:10px !important;
  border:1px solid rgba(17,24,39,.10) !important;
  position:relative !important;
  overflow:hidden !important;
  background:#f7fbff !important;
}
.dbc-theme-swatch:before{
  content:"";
  position:absolute;
  top:10px; left:10px; right:10px;
  height:14px;
  border-radius:10px;
  background: rgba(255,255,255,.75);
}
.dbc-theme-swatch:after{
  content:"";
  position:absolute;
  left:10px; right:10px; bottom:10px;
  height:28px;
  border-radius:12px;
  background: rgba(255,255,255,.62);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
}

.dbc-theme-name{
  display:block !important;
  font-weight:900 !important;
  margin-bottom:4px !important;
  color:#111827 !important;
}
.dbc-theme-desc{
  display:block !important;
  opacity:.85 !important;
  font-size:13px !important;
  line-height:1.35 !important;
  color:#111827 !important;
}
.dbc-theme-badge{
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  font-size:12px !important;
  font-weight:900 !important;
  padding:6px 10px !important;
  border-radius:999px !important;
  background: rgba(255,255,255,.75) !important;
  border:1px solid rgba(17,24,39,.10) !important;
  color:#111827 !important;
}

.dbc-theme-save{
  margin-top:16px !important;
  width:100% !important;
  border:0 !important;
  border-radius:16px !important;
  padding:12px 16px !important;
  font-weight:900 !important;
  cursor:pointer !important;
  background: var(--dbc-btn-bg, linear-gradient(135deg,#63c5da,#ffe6ef)) !important;
  color: var(--dbc-btn-text, #2b2435) !important;
}

/* Swatch previews (MATCHES YOUR SHORTCODE: .dbc-swatch-{slug}) */
.dbc-theme-swatch.dbc-swatch-ocean{
  background:
    radial-gradient(1200px 700px at 15% 0%, rgba(99,197,218,0.55), transparent 60%),
    radial-gradient(900px 700px at 90% 25%, rgba(255,230,239,0.45), transparent 55%),
    linear-gradient(180deg, rgba(247,251,255,1), rgba(235,252,255,1)) !important;
}
.dbc-theme-swatch.dbc-swatch-champagne{
  background:
    radial-gradient(1100px 700px at 18% 0%, rgba(217,179,108,0.60), transparent 60%),
    radial-gradient(900px 700px at 92% 22%, rgba(255,241,220,0.80), transparent 55%),
    linear-gradient(180deg, rgba(251,247,242,1), rgba(255,250,245,1)) !important;
}
.dbc-theme-swatch.dbc-swatch-sage{
  background:
    radial-gradient(1100px 700px at 15% 0%, rgba(120,178,138,0.62), transparent 62%),
    radial-gradient(900px 700px at 92% 24%, rgba(223,243,229,0.85), transparent 58%),
    linear-gradient(180deg, rgba(244,250,245,1), rgba(236,252,241,1)) !important;
}
.dbc-theme-swatch.dbc-swatch-blush{
  background:
    radial-gradient(1100px 700px at 15% 0%, rgba(255,127,168,0.60), transparent 62%),
    radial-gradient(900px 700px at 92% 24%, rgba(255,225,235,0.85), transparent 58%),
    linear-gradient(180deg, rgba(255,247,251,1), rgba(255,238,246,1)) !important;
}
.dbc-theme-swatch.dbc-swatch-mono{
  background:
    radial-gradient(1100px 700px at 18% 0%, rgba(0,0,0,0.22), transparent 62%),
    radial-gradient(900px 700px at 92% 25%, rgba(217,217,223,0.75), transparent 58%),
    linear-gradient(180deg, rgba(248,248,250,1), rgba(240,240,245,1)) !important;
}
.dbc-theme-swatch.dbc-swatch-grey,
.dbc-theme-swatch.dbc-swatch-gray{
  background:
    radial-gradient(1100px 700px at 15% 0%, rgba(124,124,140,0.45), transparent 62%),
    radial-gradient(900px 700px at 92% 25%, rgba(231,231,239,0.92), transparent 58%),
    linear-gradient(180deg, rgba(245,245,248,1), rgba(238,238,244,1)) !important;
}
.dbc-theme-swatch.dbc-swatch-plum{
  background:
    radial-gradient(1100px 700px at 15% 0%, rgba(106,44,112,0.52), transparent 62%),
    radial-gradient(900px 700px at 92% 25%, rgba(242,199,255,0.82), transparent 58%),
    linear-gradient(180deg, rgba(251,245,251,1), rgba(246,238,248,1)) !important;
}


/* ==========================================================
12) Freebie Theme Lock (ROLE CLASS)
========================================================== */
body.dbc-freebie-user .dbc-theme-picker .dbc-theme-option{
  opacity:.55 !important;
  filter: grayscale(.20) blur(.2px) !important;
  pointer-events:none !important;
}
body.dbc-freebie-user .dbc-theme-picker .dbc-theme-option.theme-ocean,
body.dbc-freebie-user .dbc-theme-picker .dbc-theme-option.theme-blush{
  opacity:1 !important;
  filter:none !important;
  pointer-events:auto !important;
  border:2px solid rgba(99,197,218,.28) !important;
  box-shadow:
    0 18px 44px rgba(30,27,38,.18),
    0 0 0 1px rgba(255,255,255,.55),
    0 0 60px rgba(99,197,218,.22) !important;
}
body.dbc-freebie-user .dbc-theme-picker .dbc-theme-option:not(.theme-ocean):not(.theme-blush)::after{
  content:"🔒 VIP Themes" !important;
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  font-size:12px !important;
  font-weight:900 !important;
  padding:6px 10px !important;
  border-radius:999px !important;
  background: rgba(17,24,39,.08) !important;
  color:#111827 !important;
}
body.dbc-freebie-user .dbc-theme-picker .dbc-theme-wrap::after{
  content:"Want all themes unlocked? Upgrade to VIP for the full glow up ✨" !important;
  display:block !important;
  margin-top:14px !important;
  text-align:center !important;
  font-weight:900 !important;
  opacity:.90 !important;
}
/* ===== DBC Portal Surface Final Fix ===== */
.dbc-portal.dbc-theme-surface a.dbc-portal-card{
  color: var(--dbc-card-link, rgba(255,255,255,.92)) !important;
  text-decoration: none !important;
}
.dbc-portal.dbc-theme-surface a.dbc-portal-card *{
  color: inherit !important;
  text-decoration: none !important;
}
.dbc-portal.dbc-theme-surface a.dbc-portal-card .dbc-portal-label{
  color: var(--dbc-card-title, rgba(255,255,255,.95)) !important;
}
.dbc-portal.dbc-theme-surface a.dbc-portal-card .dbc-portal-tagline{
  color: var(--dbc-card-tagline, rgba(255,255,255,.78)) !important;
}

/* ==========================================================
DBC PORTAL FORM FIELD CONTRAST FIX
Keeps inputs readable on themed portal pages
========================================================== */

body.dbc-portal input[type="text"],
body.dbc-portal input[type="email"],
body.dbc-portal input[type="number"],
body.dbc-portal input[type="url"],
body.dbc-portal textarea,
body.dbc-portal select{
  background: #ffffff !important;
  color: #111827 !important;
  border: 1px solid rgba(17,24,39,.25) !important;
}

/* Placeholder text */
body.dbc-portal input::placeholder,
body.dbc-portal textarea::placeholder{
  color: rgba(17,24,39,.55) !important;
}

/* Focus state */
body.dbc-portal input:focus,
body.dbc-portal textarea:focus,
body.dbc-portal select:focus{
  outline: none !important;
  border-color: var(--dbc-accent, #63c5da) !important;
  box-shadow: 0 0 0 3px rgba(99,197,218,.25) !important;
  background: #ffffff !important;
}

/* WPForms specific safety net */
body.dbc-portal .wpforms-form input,
body.dbc-portal .wpforms-form textarea,
body.dbc-portal .wpforms-form select{
  background: #ffffff !important;
  color: #111827 !important;
}


/* ==========================================================
DBC PORTAL – CPT/PHP DASHBOARD FORM READABILITY FIX
Targets custom dashboards (CPT + PHP output), not WPForms only
Paste at VERY END
========================================================== */

body.dbc-portal .dbc-wrap,
body.dbc-portal .dbc-card,
body.dbc-portal .dbc-shell,
body.dbc-portal .dbc-dashboard,
body.dbc-portal .dbc-form,
body.dbc-portal .dbc-form label,
body.dbc-portal .dbc-form-title,
body.dbc-portal .dbc-field-label,
body.dbc-portal .dbc-help,
body.dbc-portal label,
body.dbc-portal strong,
body.dbc-portal th,
body.dbc-portal td{
  color: #111827 !important;
  opacity: 1 !important;
}

/* Inputs/selects/textarea (text + background + border) */
body.dbc-portal input[type="text"],
body.dbc-portal input[type="email"],
body.dbc-portal input[type="number"],
body.dbc-portal input[type="url"],
body.dbc-portal input[type="date"],
body.dbc-portal input[type="time"],
body.dbc-portal textarea,
body.dbc-portal select{
  background: #ffffff !important;
  color: #111827 !important;
  border: 1px solid rgba(17,24,39,.25) !important;
}

/* Placeholder */
body.dbc-portal input::placeholder,
body.dbc-portal textarea::placeholder{
  color: rgba(17,24,39,.55) !important;
  opacity: 1 !important;
}

/* Dropdown option text (important for CPT dashboards) */
body.dbc-portal select option{
  color: #111827 !important;
}

/* Focus */
body.dbc-portal input:focus,
body.dbc-portal textarea:focus,
body.dbc-portal select:focus{
  outline: none !important;
  border-color: var(--dbc-accent, #63c5da) !important;
  box-shadow: 0 0 0 3px rgba(99,197,218,.22) !important;
}

/* Hide My Account when logged out */
body:not(.logged-in) .menu-item-my-account{
  display:none !important;
}

/* Hide Login when logged in */
body.logged-in .menu-item-login{
  display:none !important;
}

/* Hide Logout when logged out */
body:not(.logged-in) .menu-item-logout{
  display:none !important;
}

.menu-item-portal a{
  padding: 10px 14px;
  border-radius: 999px;
  background: linear-gradient(90deg,#63C5DA 0%, #FF8FB3 45%, #FFD6A5 100%);
  color: #2B2435 !important;
  font-weight: 800;
  box-shadow: 0 10px 22px rgba(0,0,0,.14);
}

.menu-item-portal a:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(0,0,0,.16);
}


/* ===== DBC MOBILE FIX PACK (START) ===== */

/* 1) Base spacing and container safety on portal pages */
body.dbc-portal .dbc-wrap,
body.dbc-portal .dbc-container,
body.dbc-portal .dbc-dashboard,
body.dbc-portal .dbc-shell,
body.dbc-portal .dbc-inner{
  width: min(1140px, 94vw);
  margin: 0 auto;
  box-sizing: border-box;
}

/* 2) Any 2 column grids should stack on mobile */
@media (max-width: 980px){
  body.dbc-portal .dbc-grid,
  body.dbc-portal .dbc-two-col,
  body.dbc-portal .dbc-columns{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* common sidebars / helper cards */
  body.dbc-portal .dbc-sidebar,
  body.dbc-portal .dbc-right,
  body.dbc-portal .dbc-left{
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* 3) Forms: make fields and buttons finger friendly */
@media (max-width: 680px){
  body.dbc-portal input[type="text"],
  body.dbc-portal input[type="email"],
  body.dbc-portal input[type="number"],
  body.dbc-portal input[type="date"],
  body.dbc-portal input[type="time"],
  body.dbc-portal select,
  body.dbc-portal textarea{
    width: 100% !important;
    max-width: 100% !important;
    font-size: 16px !important; /* prevents iOS zoom */
    box-sizing: border-box !important;
  }

  body.dbc-portal button,
  body.dbc-portal .button,
  body.dbc-portal input[type="submit"],
  body.dbc-portal .dbc-btn{
    width: 100% !important;
    display: block !important;
    padding: 12px 14px !important;
    font-size: 16px !important;
  }

  body.dbc-portal .dbc-btn-row{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}

/* 4) Tables: stop them from breaking the page */
body.dbc-portal table{
  width: 100%;
  border-collapse: collapse;
}

@media (max-width: 980px){
  body.dbc-portal .dbc-table-wrap,
  body.dbc-portal .table-wrap,
  body.dbc-portal .dbc-table,
  body.dbc-portal table{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  body.dbc-portal table th,
  body.dbc-portal table td{
    white-space: nowrap;
  }
}

/* 5) Images + cards: prevent overflow */
body.dbc-portal img,
body.dbc-portal video,
body.dbc-portal iframe{
  max-width: 100%;
  height: auto;
}

/* ===== DBC MOBILE FIX PACK (END) ===== */

/* ===== Wedding Timeline: Mobile Layout Fix ===== */

@media (max-width: 980px){
  body.dbc-portal .dbc-wedding-timeline,
  body.dbc-portal .dbc-timeline-wrap,
  body.dbc-portal .dbc-timeline-grid,
  body.dbc-portal .dbc-timeline-columns,
  body.dbc-portal .dbc-timeline-shell{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  body.dbc-portal .dbc-wedding-timeline .row,
  body.dbc-portal .dbc-wedding-timeline .columns,
  body.dbc-portal .dbc-wedding-timeline .flex,
  body.dbc-portal .dbc-wedding-timeline [style*="display:flex"]{
    flex-direction: column !important;
    gap: 14px !important;
  }
}

@media (max-width: 980px){
  body.dbc-portal .dbc-wedding-timeline table{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  body.dbc-portal .dbc-wedding-timeline th,
  body.dbc-portal .dbc-wedding-timeline td{
    white-space: nowrap;
  }
}


/* ===== Dark Mode: Boost Gradient Heading Contrast ===== */

@media (prefers-color-scheme: dark){

  body.dbc-portal{
    color: rgba(255,255,255,.92);
  }

  body.dbc-portal h1,
  body.dbc-portal h2,
  body.dbc-portal h3{
    text-shadow: 0 2px 10px rgba(0,0,0,.65);
  }

  body.dbc-portal .dbc-gradient-title,
  body.dbc-portal .dbc-gradient-heading{
    text-shadow: 0 2px 12px rgba(0,0,0,.75);
    -webkit-text-stroke: 0.35px rgba(255,255,255,.35);
  }
}

/* ===== DBC DARK MODE READABILITY (FORCED) ===== */
/* Works for phones on dark mode + common dark-mode plugins/classes */

@media (prefers-color-scheme: dark){
  body.dbc-portal h1,
  body.dbc-portal h2,
  body.dbc-portal h3,
  body.dbc-portal .dbc-gradient-title,
  body.dbc-portal .dbc-gradient-heading{
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.75) !important;
  }
}

/* Extra coverage for dark-mode plugins (common class names) */
body.dark-mode.dbc-portal h1,
body.dark-mode.dbc-portal h2,
body.dark-mode.dbc-portal h3,
body.dark-mode.dbc-portal .dbc-gradient-title,
body.dark-mode.dbc-portal .dbc-gradient-heading,
html.dark body.dbc-portal h1,
html.dark body.dbc-portal h2,
html.dark body.dbc-portal h3,
html.dark body.dbc-portal .dbc-gradient-title,
html.dark body.dbc-portal .dbc-gradient-heading{
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.75) !important;
}

/* ===== WEDDING TIMELINE: FORCE MOBILE STACK + TABLE SAFETY ===== */

@media (max-width: 980px){

  /* Force anything laid out side-by-side to stack on this page */
  body.page-wedding-week-timeline.dbc-portal .dbc-grid,
  body.page-wedding-week-timeline.dbc-portal .dbc-two-col,
  body.page-wedding-week-timeline.dbc-portal .dbc-columns,
  body.page-wedding-week-timeline.dbc-portal .dbc-row,
  body.page-wedding-week-timeline.dbc-portal .row,
  body.page-wedding-week-timeline.dbc-portal [style*="display:flex"]{
    display: block !important;
  }

  body.page-wedding-week-timeline.dbc-portal .dbc-grid > *,
  body.page-wedding-week-timeline.dbc-portal .dbc-two-col > *,
  body.page-wedding-week-timeline.dbc-portal .dbc-columns > *{
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 14px !important;
  }

  /* Make the results/table area scroll instead of breaking the page */
  body.page-wedding-week-timeline.dbc-portal table{
    display: block !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.page-wedding-week-timeline.dbc-portal th,
  body.page-wedding-week-timeline.dbc-portal td{
    white-space: nowrap !important;
  }
}

/* ===== DBC: DARK MODE GRADIENT FIX (FOR REAL) ===== */
/* In dark mode, gradient text becomes solid light text so it is readable */

@media (prefers-color-scheme: dark){
  body.dbc-portal h1,
  body.dbc-portal h2,
  body.dbc-portal h3,
  body.dbc-portal .dbc-gradient-title,
  body.dbc-portal .dbc-gradient-heading,
  body.dbc-portal [style*="background:linear-gradient"],
  body.dbc-portal [style*="-webkit-background-clip:text"],
  body.dbc-portal [style*="background-clip:text"]{
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    color: rgba(255,255,255,.96) !important;
    -webkit-text-fill-color: rgba(255,255,255,.96) !important;
    text-shadow: 0 2px 10px rgba(0,0,0,.65) !important;
  }
}

/* Dark mode plugins often add one of these classes */
html.dark body.dbc-portal h1,
html.dark body.dbc-portal h2,
html.dark body.dbc-portal h3,
body.dark body.dbc-portal h1,
body.dark body.dbc-portal h2,
body.dark body.dbc-portal h3,
body.dark-mode body.dbc-portal h1,
body.dark-mode body.dbc-portal h2,
body.dark-mode body.dbc-portal h3,
body.wp-dark-mode-active body.dbc-portal h1,
body.wp-dark-mode-active body.dbc-portal h2,
body.wp-dark-mode-active body.dbc-portal h3,
body.darkreader body.dbc-portal h1,
body.darkreader body.dbc-portal h2,
body.darkreader body.dbc-portal h3{
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  color: rgba(255,255,255,.96) !important;
  -webkit-text-fill-color: rgba(255,255,255,.96) !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.65) !important;
}

/* ===== DBC: WEDDING WEEK TIMELINE MOBILE FIX (PAGE SPECIFIC) ===== */

@media (max-width: 980px){

  /* Make all common multi column containers stack */
  body.page-wedding-week-timeline.dbc-portal .dbc-grid,
  body.page-wedding-week-timeline.dbc-portal .dbc-two-col,
  body.page-wedding-week-timeline.dbc-portal .dbc-columns,
  body.page-wedding-week-timeline.dbc-portal .dbc-row,
  body.page-wedding-week-timeline.dbc-portal .row,
  body.page-wedding-week-timeline.dbc-portal .columns,
  body.page-wedding-week-timeline.dbc-portal .elementor-container,
  body.page-wedding-week-timeline.dbc-portal .elementor-row,
  body.page-wedding-week-timeline.dbc-portal [style*="display:flex"],
  body.page-wedding-week-timeline.dbc-portal [style*="grid-template-columns"]{
    display: block !important;
  }

  /* Children go full width */
  body.page-wedding-week-timeline.dbc-portal .dbc-grid > *,
  body.page-wedding-week-timeline.dbc-portal .dbc-two-col > *,
  body.page-wedding-week-timeline.dbc-portal .dbc-columns > *,
  body.page-wedding-week-timeline.dbc-portal .elementor-container > *{
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 14px !important;
    box-sizing: border-box !important;
  }

  /* Tables never break the screen */
  body.page-wedding-week-timeline.dbc-portal table{
    display: block !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.page-wedding-week-timeline.dbc-portal th,
  body.page-wedding-week-timeline.dbc-portal td{
    white-space: nowrap !important;
  }
}

/* ===== DBC: GRADIENT READABILITY FINAL FIX (PORTAL ONLY) ===== */

/* 1) Tell browsers this area is designed for light UI so forced dark mode backs off */
body.dbc-portal{
  color-scheme: light !important;
  -webkit-text-size-adjust: 100%;
}

/* 2) Make gradient text stop going muddy on phones that "darken" it */
body.dbc-portal .dbc-wtl-title,
body.dbc-portal .dbc-gradient-title,
body.dbc-portal .dbc-gradient-heading,
body.dbc-portal [style*="-webkit-background-clip:text"],
body.dbc-portal [style*="background-clip:text"]{
  filter: none !important;
  mix-blend-mode: normal !important;
  -webkit-filter: none !important;
}

/* 3) When device is dark mode, do NOT use gradient text. Use bright readable text. */
@media (prefers-color-scheme: dark){
  body.dbc-portal .dbc-wtl-title,
  body.dbc-portal .dbc-gradient-title,
  body.dbc-portal .dbc-gradient-heading,
  body.dbc-portal [style*="-webkit-background-clip:text"],
  body.dbc-portal [style*="background-clip:text"]{
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.70) !important;
  }
}

/* 4) Extra coverage for forced dark mode / high contrast environments */
@media (forced-colors: active){
  body.dbc-portal .dbc-wtl-title,
  body.dbc-portal .dbc-gradient-title,
  body.dbc-portal .dbc-gradient-heading,
  body.dbc-portal [style*="-webkit-background-clip:text"],
  body.dbc-portal [style*="background-clip:text"]{
    background: none !important;
    -webkit-text-fill-color: CanvasText !important;
    color: CanvasText !important;
    forced-color-adjust: none !important;
  }
}

/* ===== Seating Chart Mobile Fixes ===== */
.dbc-seating-wrap,
.dbc-seating-chart-wrap,
#dbc-seating-canvas-wrap,
.canvas-container{
  max-width: 100%;
}

#dbc-seating-canvas-wrap,
.dbc-seating-canvas-wrap{
  width: 100%;
  overflow: hidden;
  touch-action: none; /* key for touch dragging */
}

.canvas-container{
  width: 100% !important;
  height: auto !important;
}

canvas.upper-canvas,
canvas.lower-canvas{
  width: 100% !important;
  height: auto !important;
  display:block;
}

/* Make controls easier to tap on mobile */
@media (max-width: 768px){
  .dbc-seating-toolbar button,
  .dbc-seating-toolbar a{
    width: 100%;
    display:block;
    margin: 8px 0;
  }
}

/* ===============================
DBC Seating Chart – Layout Fix
=============================== */

.dbc-seat {
  position: relative;
  isolation: isolate; /* prevents gradient + header bleed */
  z-index: 1;
}

/* Force clean grid containment */
.dbc-seat .dbc-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

/* Stack on mobile */
@media (max-width: 980px) {
  .dbc-seat .dbc-grid {
    grid-template-columns: 1fr;
  }
}

/* Prevent text/cards from floating */
.dbc-seat h2,
.dbc-seat h3,
.dbc-seat h4,
.dbc-seat p,
.dbc-seat ol,
.dbc-seat li {
  position: relative;
  z-index: 2;
}

/* Card containment */
.dbc-seat .dbc-card {
  position: relative;
  overflow: hidden; /* THIS stops bleed */
}

/* Canva section specifically */
.dbc-seat .dbc-card.canva {
  margin-top: 28px;
  clear: both;
}

/* Kill any accidental absolute positioning inside */
.dbc-seat * {
  max-width: 100%;
  box-sizing: border-box;
}

/* DBC: Hide Popup Maker popups on ALL MemberPress-generated pages */
body[class*="mepr_page_"] .pum,
body[class*="mepr_"] .pum {
  display: none !important;
}

/* Extra: Hide popups on any /register/ URL page */
body[class*="page-template"] .pum,
body[class*="register"] .pum {
  display: none !important;
}

/* DBC: Stop "Report a Problem" popup from showing inline on MemberPress register/product pages */
body.single-memberpressproduct #pum-3710,
body.single-memberpressproduct #popmake-3710,
body.single-memberpressproduct .pum {
  display: none !important;
}


/* =========================================================
   Directorist "Add Listing" Wizard text contrast fix
   Paste into Appearance → Customize → Additional CSS
========================================================= */

/* 1) Left wizard steps text */
.directorist-wizard a,
.directorist-wizard .directorist-wizard__nav,
.directorist-wizard .directorist-wizard__nav a,
.directorist-wizard .directorist-wizard__nav span{
  color: #ffffff !important;
  opacity: 1 !important;
}

/* If your left panel is light instead of dark on some screens */
.directorist-wizard .directorist-wizard__nav{
  background: transparent !important;
}

/* 2) Main form labels, section titles, helper text */
.directorist-wizard .directorist-form label,
.directorist-wizard .directorist-form .directorist-form__label,
.directorist-wizard .directorist-form .directorist-form__label span,
.directorist-wizard .directorist-form .directorist-form__hint,
.directorist-wizard .directorist-form .directorist-form__description,
.directorist-wizard .directorist-form .directorist-form__message,
.directorist-wizard .directorist-form .directorist-form__title,
.directorist-wizard .directorist-form .directorist-form-group__label{
  color: #2b2435 !important;
  opacity: 1 !important;
}

/* 3) Input text and dropdown text */
.directorist-wizard input[type="text"],
.directorist-wizard input[type="email"],
.directorist-wizard input[type="url"],
.directorist-wizard input[type="tel"],
.directorist-wizard input[type="number"],
.directorist-wizard textarea,
.directorist-wizard select{
  color: #2b2435 !important;
}

/* 4) Placeholder text */
.directorist-wizard input::placeholder,
.directorist-wizard textarea::placeholder{
  color: rgba(43,36,53,.55) !important;
  opacity: 1 !important;
}

/* 5) Required asterisk */
.directorist-wizard .directorist-form label .required,
.directorist-wizard .directorist-form .directorist-form__label .required{
  color: #d11a2a !important;
}

/* 6) Optional: make the main panel background stay bright so dark text always reads */
.directorist-wizard .directorist-wizard__content,
.directorist-wizard .directorist-card,
.directorist-wizard .directorist-form{
  background: #ffffff !important;
}

.atbdp-form label,
.atbdp-form .form-group label,
.atbdp-form .form-control,
.atbdp-form .form-control::placeholder{
  color: #2b2435 !important;
}

/* =========================================================
   Directorist Add Listing ([directorist_add_listing]) text color fix
   Paste into Appearance → Customize → Additional CSS
========================================================= */

/* 1) Main content panel text (dark) */
.directorist,
.directorist *:not(.directorist-wizard__nav *):not(.directorist-wizard__nav),
.atbdp,
.atbdp *:not(.directorist-wizard__nav *):not(.directorist-wizard__nav){
  color: #2b2435 !important;
}

/* 2) Ensure form panels are white so dark text reads */
.directorist .directorist-wizard__content,
.directorist .directorist-wizard__content * ,
.directorist .directorist-card,
.directorist .directorist-form,
.directorist .directorist-form-wrap,
.atbdp .directorist-wizard__content,
.atbdp .directorist-card,
.atbdp .atbdp-form,
.atbdp .atbdp-form *{
  background-color: #ffffff !important;
}

/* 3) Labels, helper text, small descriptions */
.directorist label,
.directorist .directorist-form__label,
.directorist .directorist-form__hint,
.directorist .directorist-form__description,
.directorist .directorist-form__message,
.directorist small,
.atbdp label,
.atbdp .form-group label,
.atbdp small{
  color: #2b2435 !important;
  opacity: 1 !important;
}

/* 4) Inputs + textareas + selects */
.directorist input[type="text"],
.directorist input[type="email"],
.directorist input[type="url"],
.directorist input[type="tel"],
.directorist input[type="number"],
.directorist textarea,
.directorist select,
.atbdp input[type="text"],
.atbdp input[type="email"],
.atbdp input[type="url"],
.atbdp input[type="tel"],
.atbdp input[type="number"],
.atbdp textarea,
.atbdp select{
  color: #2b2435 !important;
  background: #ffffff !important;
}

/* 5) Placeholder text */
.directorist input::placeholder,
.directorist textarea::placeholder,
.atbdp input::placeholder,
.atbdp textarea::placeholder{
  color: rgba(43,36,53,.55) !important;
  opacity: 1 !important;
}

/* 6) Select2 (this is usually where the “light/white text” hides) */
.directorist .select2-container .select2-selection,
.directorist .select2-container .select2-selection__rendered,
.directorist .select2-container .select2-selection__placeholder,
.atbdp .select2-container .select2-selection,
.atbdp .select2-container .select2-selection__rendered,
.atbdp .select2-container .select2-selection__placeholder{
  color: #2b2435 !important;
  background: #ffffff !important;
}

/* 7) Required asterisk */
.directorist .required,
.directorist .directorist-required,
.atbdp .atbdp-required,
.atbdp .required{
  color: #d11a2a !important;
}

/* 8) LEFT wizard sidebar steps (keep white on blue) */
.directorist .directorist-wizard__nav,
.directorist .directorist-wizard__nav *,
.atbdp .directorist-wizard__nav,
.atbdp .directorist-wizard__nav *{
  color: #ffffff !important;
  opacity: 1 !important;
}

/* 9) If step labels are still faint, force stronger contrast */
.directorist .directorist-wizard__nav a,
.directorist .directorist-wizard__nav span,
.atbdp .directorist-wizard__nav a,
.atbdp .directorist-wizard__nav span{
  font-weight: 600 !important;
}
