/* BD Gift Voucher v0.2.3 — Luxury single-page flow */
.bdgv-flow {
  --bdgv-accent:#c89b3c;
  --bdgv-ink:#12110f;
  --bdgv-muted:#69635c;
  --bdgv-line:#e4d8c6;
  --bdgv-cream:#fbf8f3;
  width:min(1540px, calc(100vw - 34px));
  max-width:none;
  margin-left:50%;
  transform:translateX(-50%);
  padding:clamp(34px,4vw,68px) clamp(18px,3vw,44px);
  color:var(--bdgv-ink);
  background:linear-gradient(180deg,#fff 0%,#fbf8f3 100%);
  font-family:"Manrope",Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-sizing:border-box;
}

.bdgv-flow *,
.bdgv-flow *::before,
.bdgv-flow *::after { box-sizing:border-box; }

.bdgv-flow h2,
.bdgv-flow h3,
.bdgv-flow h4 {
  margin-top:0;
  color:var(--bdgv-ink);
  font-family:"Libre Bodoni","Playfair Display",Georgia,serif;
  font-weight:400;
}

.bdgv-flow button,
.bdgv-flow input,
.bdgv-flow textarea { font:inherit; }

.bdgv-flow-header {
  max-width:920px;
  margin:0 auto 50px;
  text-align:center;
}

.bdgv-flow-header p,
.bdgv-kicker,
.bdgv-payment-title p {
  margin:0 0 12px;
  color:var(--bdgv-accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.bdgv-flow-header h2 {
  margin:0;
  font-size:clamp(48px,6vw,82px);
  line-height:.98;
  letter-spacing:-.045em;
}

.bdgv-flow-header h2::after {
  content:"";
  display:block;
  width:100px;
  height:18px;
  margin:20px auto 0;
  background:
    linear-gradient(90deg,transparent 0 10%,var(--bdgv-accent) 10% 40%,transparent 40% 60%,var(--bdgv-accent) 60% 90%,transparent 90%);
}

.bdgv-flow-header span {
  display:block;
  max-width:760px;
  margin:18px auto 0;
  color:#302c27;
  font-size:18px;
  line-height:1.55;
}

.bdgv-flow-screen { display:none; }
.bdgv-flow-screen.is-active {
  display:block;
  animation:bdgvFadeIn .32s ease both;
}
@keyframes bdgvFadeIn {
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:none; }
}

.bdgv-flow.is-detail > .bdgv-flow-header,
.bdgv-flow.is-payment > .bdgv-flow-header,
.bdgv-flow.is-success > .bdgv-flow-header { display:none; }

/* Catalog */
.bdgv-flow-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
}
.bdgv-flow-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.bdgv-flow-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }

.bdgv-flow-card {
  overflow:hidden;
  border:1px solid rgba(18,17,15,.11);
  background:#fff;
  transition:transform .25s ease, box-shadow .25s ease;
}
.bdgv-flow-card:hover {
  transform:translateY(-4px);
  box-shadow:0 26px 68px rgba(18,17,15,.10);
}
.bdgv-flow-card-image {
  aspect-ratio:1.92/1;
  margin:18px 18px 0;
  overflow:hidden;
  background:#111;
}
.bdgv-flow-card-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.bdgv-flow-card-fallback {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#d6b15a;
  background:
    radial-gradient(circle at 18% 18%,rgba(198,148,47,.28),transparent 28%),
    linear-gradient(135deg,#191610,#050505);
}
.bdgv-flow-card-fallback span {
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:40px;
}
.bdgv-flow-card-fallback small { letter-spacing:.17em; }
.bdgv-flow-card-body {
  padding:25px 32px 32px;
  text-align:center;
}
.bdgv-flow-card-body h3 {
  margin:0;
  font-size:clamp(25px,2.3vw,36px);
  line-height:1.1;
}
.bdgv-flow-separator {
  width:118px;
  height:1px;
  margin:15px auto;
  background:linear-gradient(90deg,transparent,var(--bdgv-accent),transparent);
}
.bdgv-flow-card-body p {
  min-height:48px;
  margin:0;
  color:#5f5952;
  font-size:15px;
  line-height:1.55;
}
.bdgv-flow-price {
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:16px;
  margin:20px 0;
}
.bdgv-flow-price strong {
  color:var(--bdgv-accent);
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:38px;
  line-height:1;
}
.bdgv-flow-price span {
  color:#78736c;
  font-size:19px;
  text-decoration:line-through;
}
.bdgv-flow-buy,
.bdgv-flow-next,
.bdgv-flow-secondary {
  min-height:48px;
  border-radius:4px;
  padding:12px 22px;
  cursor:pointer;
  font-weight:700;
}
.bdgv-flow-buy,
.bdgv-flow-next {
  width:100%;
  border:0;
  color:#15120d;
  background:linear-gradient(135deg,#dfbc67,#c99531);
}
.bdgv-flow-secondary {
  border:1px solid #d8c49c;
  color:#27221c;
  background:#fff;
}
.bdgv-flow-benefits {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  max-width:1060px;
  margin:38px auto 0;
}
.bdgv-flow-benefits div {
  display:grid;
  grid-template-columns:58px 1fr;
  column-gap:14px;
  align-items:center;
}
.bdgv-flow-benefits span {
  grid-row:span 2;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid #ead8b1;
  border-radius:50%;
  color:var(--bdgv-accent);
  background:#fffaf2;
  font-size:22px;
}
.bdgv-flow-benefits strong { font-size:15px; }
.bdgv-flow-benefits small { color:#6e6860; }

/* Detail */
.bdgv-detail-breadcrumb {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:-15px 0 28px;
  color:#8a8177;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.bdgv-detail-breadcrumb button {
  border:0;
  padding:0;
  color:var(--bdgv-accent);
  background:none;
  cursor:pointer;
  letter-spacing:inherit;
}
.bdgv-detail-breadcrumb strong { color:#77716a; }

.bdgv-flow-product-layout {
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(450px,.97fr);
  gap:clamp(38px,5vw,72px);
  align-items:start;
}
.bdgv-media-stage {
  position:relative;
  aspect-ratio:1.84/1;
  overflow:hidden;
  border:1px solid rgba(18,17,15,.10);
  border-radius:5px;
  background:#0a0a09;
  box-shadow:0 22px 60px rgba(18,17,15,.08);
}
.bdgv-media-stage > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.bdgv-product-gallery {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
  margin-top:14px;
}
.bdgv-gallery-thumb {
  aspect-ratio:1.75/1;
  overflow:hidden;
  border:1px solid transparent;
  border-radius:4px;
  padding:0;
  background:#111;
  cursor:pointer;
}
.bdgv-gallery-thumb.is-active { border-color:var(--bdgv-accent); }
.bdgv-gallery-thumb img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.bdgv-voucher-placeholder {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#d6b15a;
  background:
    radial-gradient(circle at 14% 18%,rgba(205,157,59,.26),transparent 24%),
    radial-gradient(circle at 84% 72%,rgba(205,157,59,.19),transparent 25%),
    linear-gradient(135deg,#1b1710,#070707 70%);
}
.bdgv-voucher-placeholder[hidden] { display:none; }
.bdgv-voucher-placeholder span {
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:clamp(42px,5vw,72px);
}
.bdgv-voucher-placeholder small {
  margin-top:5px;
  letter-spacing:.18em;
}
.bdgv-placeholder-ribbon {
  position:absolute;
  top:-12%;
  left:10%;
  width:24%;
  height:130%;
  transform:rotate(26deg);
  border-left:18px solid rgba(217,177,89,.75);
  border-right:8px solid rgba(120,78,13,.52);
  opacity:.75;
}

.bdgv-flow-email-preview {
  max-width:430px;
  margin:28px auto 0;
  text-align:center;
}
.bdgv-flow-email-preview > p {
  margin:0 0 12px;
  color:#81796f;
  font-size:12px;
  letter-spacing:.2em;
}
.bdgv-email-card {
  padding:28px 32px;
  border:1px solid #e6dbcb;
  background:#fff;
  box-shadow:0 22px 58px rgba(18,17,15,.07);
}
.bdgv-email-card > strong {
  display:block;
  color:var(--bdgv-accent);
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:24px;
  font-weight:400;
}
.bdgv-email-card > small {
  display:block;
  color:#514a42;
  font-size:8px;
  letter-spacing:.2em;
}
.bdgv-email-card > span {
  display:block;
  margin:18px 0;
  color:#4e4841;
  line-height:1.45;
}
.bdgv-email-voucher {
  position:relative;
  max-width:300px;
  min-height:145px;
  margin:0 auto;
  overflow:hidden;
  background:#111;
}
.bdgv-email-voucher > img {
  display:block;
  width:100%;
  height:145px;
  object-fit:cover;
}
.bdgv-voucher-placeholder.is-mini {
  position:absolute;
  inset:0;
}
.bdgv-voucher-placeholder.is-mini span { font-size:33px; }

.bdgv-flow-product-copy h3 {
  margin:0 0 8px;
  font-size:clamp(40px,4.6vw,66px);
  line-height:.98;
  letter-spacing:-.045em;
}
.bdgv-flow-price.is-big {
  justify-content:flex-start;
  margin:16px 0 17px;
}
.bdgv-flow-price.is-big strong { font-size:44px; }
.bdgv-flow-desc {
  max-width:670px;
  color:#29251f;
  font-size:15px;
  line-height:1.62;
}
.bdgv-flow-desc p { margin:0 0 8px; }

.bdgv-facts {
  margin-top:20px;
  overflow:hidden;
  border:1px solid #e1d5c3;
  border-radius:8px;
  background:rgba(255,255,255,.68);
}
.bdgv-facts > div {
  display:grid;
  grid-template-columns:34px 150px 1fr;
  align-items:center;
  gap:12px;
  min-height:52px;
  padding:10px 16px;
  border-bottom:1px solid #e7ddcf;
}
.bdgv-facts > div:last-child { border-bottom:0; }
.bdgv-fact-icon {
  color:var(--bdgv-accent);
  font-style:normal;
  font-size:20px;
}
.bdgv-facts span {
  color:#625c55;
  font-size:13px;
  font-weight:600;
}
.bdgv-facts strong {
  color:#211e1a;
  font-size:13px;
  font-weight:600;
}

.bdgv-form-head {
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:24px;
}
.bdgv-form-head::after {
  content:"";
  flex:1;
  height:1px;
  background:#e1c989;
}
.bdgv-form-head span {
  color:#2c2722;
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:25px;
}

.bdgv-choice {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.bdgv-choice label,
.bdgv-choice > span {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:42px;
  margin:0;
  border:1px solid #dacdbb;
  border-radius:7px;
  background:#fff;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
}
.bdgv-choice label:has(input:checked) {
  border-color:var(--bdgv-accent);
  box-shadow:0 0 0 1px var(--bdgv-accent) inset;
}
.bdgv-choice input[type="radio"] {
  width:auto !important;
  min-height:0 !important;
  margin:0;
}
.bdgv-choice-small {
  grid-template-columns:1fr 92px 92px;
}
.bdgv-choice-small > span {
  justify-content:flex-start;
  padding:0 14px;
  color:#332f2a;
  cursor:default;
}

.bdgv-gift-fields { display:none; }
.bdgv-flow-form.is-gift .bdgv-gift-fields { display:block; }

.bdgv-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.bdgv-flow-form label {
  position:relative;
  display:block;
  margin:0 0 14px;
}
.bdgv-flow-form label > span {
  display:block;
  margin:0 0 6px;
  color:#2c2823;
  font-size:12px;
  font-weight:600;
}
.bdgv-flow-form label em {
  color:#77716a;
  font-style:normal;
  font-weight:400;
}
.bdgv-flow-form input[type="text"],
.bdgv-flow-form input[type="email"],
.bdgv-flow-form input[type="date"],
.bdgv-flow-form textarea {
  display:block;
  width:100% !important;
  max-width:none !important;
  min-height:42px;
  margin:0;
  border:1px solid #dfd4c4 !important;
  border-radius:6px !important;
  padding:10px 12px !important;
  color:#1c1916 !important;
  background:#fff !important;
  box-shadow:none !important;
  font-size:13px !important;
}
.bdgv-flow-form textarea {
  min-height:94px;
  resize:vertical;
}
.bdgv-flow-form input:focus,
.bdgv-flow-form textarea:focus {
  border-color:var(--bdgv-accent) !important;
  outline:none;
  box-shadow:0 0 0 2px rgba(200,155,60,.12) !important;
}
.bdgv-char-count {
  position:absolute;
  right:10px;
  bottom:8px;
  color:#8b847b;
  font-size:11px;
}
.bdgv-flow-actions {
  display:grid;
  grid-template-columns:145px 1fr;
  gap:12px;
  margin-top:12px;
}
.bdgv-flow-next span { margin-left:12px; font-size:20px; }

/* Payment */
.bdgv-check-progress {
  display:flex;
  justify-content:center;
  gap:0;
  margin:0 auto 34px;
  max-width:850px;
}
.bdgv-check-progress div {
  display:flex;
  align-items:center;
  gap:9px;
  color:#6d675f;
  font-size:12px;
}
.bdgv-check-progress div:not(:last-child)::after {
  content:"";
  width:105px;
  height:1px;
  margin:0 14px;
  background:#d9bd72;
}
.bdgv-check-progress strong {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:1px solid #d9bd72;
  border-radius:50%;
  color:#9c752b;
  background:#fff;
}
.bdgv-check-progress .is-active strong,
.bdgv-check-progress .is-done strong {
  color:#fff;
  background:linear-gradient(135deg,#dfbc67,#bd8730);
}
.bdgv-payment-title {
  margin:0 0 28px;
  text-align:center;
}
.bdgv-payment-title h3 {
  margin:0;
  font-size:clamp(44px,5vw,70px);
  line-height:1;
}
.bdgv-payment-layout {
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(360px,.85fr);
  gap:46px;
  align-items:start;
}
.bdgv-payment-data > h4,
.bdgv-payment-summary > h4 {
  margin:0 0 18px;
  font-size:30px;
}
.bdgv-buyer-fields,
.bdgv-review-list {
  overflow:hidden;
  border:1px solid #e5d9c8;
  border-radius:10px;
  background:#fff;
}
.bdgv-buyer-fields {
  padding:20px;
  margin-bottom:16px;
}
.bdgv-review-list > div {
  display:grid;
  grid-template-columns:175px 1fr;
  gap:16px;
  padding:15px 18px;
  border-bottom:1px solid #eee5d9;
}
.bdgv-review-list > div:last-child { border-bottom:0; }
.bdgv-review-list strong {
  color:#a47727;
  font-size:13px;
}
.bdgv-review-list span {
  color:#2b2723;
  line-height:1.45;
}
.bdgv-payment-data > .bdgv-flow-secondary { margin-top:16px; }

.bdgv-payment-summary {
  padding:26px;
  border:1px solid #e3d8c8;
  border-radius:12px;
  background:#fff;
  box-shadow:0 24px 68px rgba(18,17,15,.08);
}
.bdgv-summary-product {
  display:grid;
  grid-template-columns:155px 1fr;
  gap:18px;
  align-items:center;
  padding-bottom:16px;
  border-bottom:1px solid #ece3d7;
}
.bdgv-summary-thumb {
  position:relative;
  aspect-ratio:1.7/1;
  overflow:hidden;
  background:#111;
}
.bdgv-summary-thumb img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.bdgv-voucher-placeholder.is-summary {
  position:absolute;
  inset:0;
}
.bdgv-voucher-placeholder.is-summary span { font-size:24px; }
.bdgv-summary-product > strong {
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:23px;
  font-weight:400;
}
.bdgv-summary-row {
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid #ece3d7;
}
.bdgv-summary-row span { color:#625d56; }
.bdgv-summary-row strong { text-align:right; }
.bdgv-summary-total {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  padding:20px 0;
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:24px;
}
.bdgv-summary-total strong {
  color:var(--bdgv-accent);
  font-size:38px;
  font-weight:400;
}
.bdgv-pay-button {
  width:100%;
  min-height:56px;
  margin:0 0 12px;
  border-radius:6px;
  padding:14px 20px;
  cursor:pointer;
  font-size:17px;
  font-weight:700;
}
.bdgv-pay-button.is-stripe {
  border:0;
  color:#e5c56a;
  background:#151515;
}
.bdgv-pay-button.is-paypal {
  border:1px solid #d9cdbb;
  color:#17130f;
  background:#fff;
}
.bdgv-secure-note {
  display:block;
  color:#615b54;
  text-align:center;
}

/* Success */
.bdgv-success {
  max-width:1050px;
  margin:0 auto;
  padding:48px;
  border:1px solid #e3d8c8;
  background:#fff;
  text-align:center;
  box-shadow:0 24px 68px rgba(18,17,15,.08);
}
.bdgv-success-icon {
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  margin:0 auto 16px;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#dfbc67,#bd8730);
  font-size:32px;
}
.bdgv-success h3 {
  margin:0;
  font-size:clamp(48px,6vw,78px);
}
.bdgv-success > span {
  display:block;
  max-width:730px;
  margin:18px auto 30px;
  color:#39342e;
  font-size:17px;
  line-height:1.55;
}
.bdgv-success-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:26px;
  text-align:left;
}
.bdgv-success-grid div {
  padding:15px;
  border:1px solid #e8ded1;
  background:#fbfaf8;
}
.bdgv-success-grid strong,
.bdgv-success-grid span { display:block; }
.bdgv-success-grid strong {
  color:#9c752b;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.bdgv-success-grid span {
  margin-top:6px;
  font-weight:600;
}

/* Compatibility shortcodes */
.bdgv-front-notice {
  padding:15px;
  border:1px solid #e5c46e;
  border-radius:8px;
  color:#6b4b0e;
  background:#fff8df;
}
.bdgv-buy-button {
  display:inline-flex;
  min-height:46px;
  align-items:center;
  justify-content:center;
  padding:12px 22px;
  color:#17130f !important;
  background:var(--bdgv-accent,#c89b3c);
  text-decoration:none !important;
}

@media (max-width:1100px) {
  .bdgv-flow-product-layout,
  .bdgv-payment-layout {
    grid-template-columns:1fr;
  }
  .bdgv-flow-product-media { max-width:780px; margin:0 auto; }
  .bdgv-flow-form-column { max-width:780px; margin:0 auto; width:100%; }
  .bdgv-payment-summary { position:static; }
}

@media (max-width:900px) {
  .bdgv-flow-grid,
  .bdgv-flow-cols-2,
  .bdgv-flow-cols-4,
  .bdgv-flow-benefits,
  .bdgv-success-grid {
    grid-template-columns:1fr;
  }
  .bdgv-flow-card-body p { min-height:0; }
  .bdgv-check-progress { flex-wrap:wrap; gap:10px; }
  .bdgv-check-progress div:not(:last-child)::after { display:none; }
}

@media (max-width:640px) {
  .bdgv-flow {
    width:100%;
    margin-left:0;
    transform:none;
    padding:30px 16px;
  }
  .bdgv-detail-breadcrumb { justify-content:flex-start; }
  .bdgv-grid,
  .bdgv-choice,
  .bdgv-choice-small,
  .bdgv-facts > div,
  .bdgv-review-list > div {
    grid-template-columns:1fr;
  }
  .bdgv-choice-small > span { min-height:42px; }
  .bdgv-flow-actions { grid-template-columns:1fr; }
  .bdgv-product-gallery { gap:7px; }
  .bdgv-payment-summary,
  .bdgv-success { padding:22px; }
  .bdgv-summary-product { grid-template-columns:110px 1fr; }
}

/* v0.2.4 — custom selectors and full-flow visual consistency */

/* Reset theme/Divi rules inside custom selectors */
.bdgv-flow .bdgv-option-card,
.bdgv-flow .bdgv-segment-option {
  position:relative !important;
  display:block !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  cursor:pointer;
}

.bdgv-flow .bdgv-option-card > input,
.bdgv-flow .bdgv-segment-option > input {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  opacity:0 !important;
  pointer-events:none;
}

.bdgv-option-ui {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:50px;
  padding:10px 18px;
  border:1px solid #d9cdbb;
  border-radius:7px;
  color:#29251f;
  background:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease, transform .2s ease;
}

.bdgv-option-card:hover .bdgv-option-ui {
  border-color:#c8aa69;
  transform:translateY(-1px);
}

.bdgv-option-card > input:checked + .bdgv-option-ui {
  border-color:var(--bdgv-accent);
  background:linear-gradient(180deg,#fffdf9,#fbf5e9);
  box-shadow:0 0 0 1px var(--bdgv-accent) inset, 0 8px 24px rgba(184,132,39,.10);
}

.bdgv-option-card > input:focus-visible + .bdgv-option-ui,
.bdgv-segment-option > input:focus-visible + span {
  outline:2px solid rgba(200,155,60,.45);
  outline-offset:3px;
}

.bdgv-option-icon {
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  color:#a87927;
}

.bdgv-option-icon svg,
.bdgv-fact-icon svg,
.bdgv-benefit-icon svg,
.bdgv-secure-note svg {
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.bdgv-option-text {
  font-size:13px;
  font-weight:700;
}

.bdgv-amount-selector {
  display:grid;
  grid-template-columns:minmax(0,1fr) 88px 88px;
  overflow:hidden;
  margin:2px 0 18px;
  border:1px solid #ddd1bf;
  border-radius:7px;
  background:#fff;
}

.bdgv-amount-title {
  display:flex;
  align-items:center;
  min-height:44px;
  padding:0 14px;
  color:#302b26;
  font-size:12px;
  font-weight:600;
}

.bdgv-segment-option > span {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border-left:1px solid #e4dacb;
  color:#4e4942;
  background:#fff;
  font-size:12px;
  font-weight:700;
  transition:background .2s ease, color .2s ease, box-shadow .2s ease;
}

.bdgv-segment-option > input:checked + span {
  color:#20180c;
  background:#fff8e8;
  box-shadow:0 0 0 1px var(--bdgv-accent) inset;
}

/* SVG icon alignment */
.bdgv-fact-icon {
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  color:var(--bdgv-accent);
}

.bdgv-flow-benefits .bdgv-benefit-icon {
  grid-row:span 2;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  padding:16px;
  border:1px solid #ead8b1;
  border-radius:50%;
  color:var(--bdgv-accent);
  background:#fffaf2;
}

.bdgv-secure-note {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.bdgv-secure-note svg {
  width:17px;
  height:17px;
  color:#a87927;
}

/* Shared page ornament */
.bdgv-title-ornament {
  display:block;
  width:112px;
  height:16px;
  margin:17px auto 0;
  background:
    linear-gradient(90deg,transparent 0 9%,var(--bdgv-accent) 9% 40%,transparent 40% 60%,var(--bdgv-accent) 60% 91%,transparent 91%);
  opacity:.8;
}

/* Catalog, payment and success now share the same luxury proportions */
.bdgv-flow.is-catalog,
.bdgv-flow.is-detail,
.bdgv-flow.is-payment,
.bdgv-flow.is-success {
  border:1px solid rgba(224,212,194,.55);
  box-shadow:0 28px 90px rgba(48,37,22,.045);
}

.bdgv-payment-title p {
  margin-bottom:10px;
}

.bdgv-payment-title h3 {
  letter-spacing:-.04em;
}

.bdgv-payment-data,
.bdgv-payment-summary,
.bdgv-success {
  border-color:#e5d8c5;
}

.bdgv-payment-data > h4,
.bdgv-payment-summary > h4 {
  position:relative;
  padding-bottom:13px;
}

.bdgv-payment-data > h4::after,
.bdgv-payment-summary > h4::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:72px;
  height:1px;
  background:var(--bdgv-accent);
}

.bdgv-buyer-fields {
  box-shadow:0 16px 42px rgba(34,25,14,.035);
}

.bdgv-review-list > div {
  min-height:58px;
  align-items:center;
}

.bdgv-payment-summary {
  position:sticky;
  top:24px;
}

.bdgv-success {
  border-radius:4px;
}

.bdgv-success-grid div {
  border-radius:4px;
}

.bdgv-success .bdgv-title-ornament {
  margin-bottom:8px;
}

/* Admin visual consistency */
.bdgv-admin {
  --bdgv-gold:#c89b3c;
  --bdgv-card:#fffdf9;
  --bdgv-bg:#f7f2ea;
}

.bdgv-admin .bdgv-shell {
  padding:0 4px 40px;
}

.bdgv-admin .bdgv-topbar {
  color:#fff;
  border-color:#2b2419;
  background:linear-gradient(135deg,#0b0b0a,#21180d);
  box-shadow:0 24px 62px rgba(18,13,7,.18);
}

.bdgv-admin .bdgv-topbar h1,
.bdgv-admin .bdgv-topbar span {
  color:#fff;
}

.bdgv-admin .bdgv-topbar span {
  opacity:.72;
}

.bdgv-admin .bdgv-topbar nav a {
  color:#eee4d3;
  border-color:rgba(213,170,85,.24);
  background:rgba(255,255,255,.05);
}

.bdgv-admin .bdgv-topbar nav a.is-active {
  color:#16110a;
  border-color:#d5aa55;
  background:#d5aa55;
}

.bdgv-admin .bdgv-panel {
  border-color:#e5d9c8;
  background:#fffdf9;
}

.bdgv-admin .bdgv-panel-head h2,
.bdgv-admin .bdgv-hero h2 {
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
}

.bdgv-admin .bdgv-stats div {
  border-color:#e5d9c8;
  background:#fffdf9;
}

.bdgv-admin .button.button-primary {
  border-color:#bd8b32;
  background:#c89b3c;
  color:#18120a;
  text-shadow:none;
}

.bdgv-admin .button.button-primary:hover,
.bdgv-admin .button.button-primary:focus {
  border-color:#a97724;
  background:#b98932;
  color:#fff;
}

@media (max-width:640px) {
  .bdgv-amount-selector {
    grid-template-columns:1fr 72px 72px;
  }

  .bdgv-option-ui {
    min-height:48px;
    padding:9px 12px;
  }

  .bdgv-payment-summary {
    position:static;
  }
}


/* v0.2.5 — definitive selector and placeholder fixes */

/* Remove the two decorative rectangles under the catalog title. */
.bdgv-flow .bdgv-flow-header h2::after {
  content:none !important;
  display:none !important;
}

/* Button-based selectors: immune to Divi/theme label and radio rules. */
.bdgv-flow .bdgv-gift-choice {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  margin:18px 0 26px !important;
}

.bdgv-flow .bdgv-option-button {
  appearance:none !important;
  -webkit-appearance:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:13px !important;
  width:100% !important;
  min-height:64px !important;
  margin:0 !important;
  padding:14px 22px !important;
  border:1px solid #ddcfbc !important;
  border-radius:8px !important;
  color:#2b2722 !important;
  background:#fff !important;
  box-shadow:none !important;
  text-align:left !important;
  cursor:pointer !important;
  transition:border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

.bdgv-flow .bdgv-option-button:hover {
  border-color:#c9a65e !important;
  transform:translateY(-1px);
}

.bdgv-flow .bdgv-option-button.is-selected {
  border-color:var(--bdgv-accent) !important;
  background:linear-gradient(180deg,#fffdf8,#fcf6ea) !important;
  box-shadow:0 0 0 1px var(--bdgv-accent) inset, 0 10px 28px rgba(184,132,39,.10) !important;
}

.bdgv-flow .bdgv-option-button:focus-visible {
  outline:2px solid rgba(200,155,60,.42) !important;
  outline-offset:3px !important;
}

.bdgv-flow .bdgv-option-button .bdgv-option-icon {
  flex:0 0 25px !important;
  width:25px !important;
  height:25px !important;
  margin:0 !important;
  color:#a87927 !important;
}

.bdgv-flow .bdgv-option-button .bdgv-option-text {
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:#2b2722 !important;
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
}

/* Segmented amount selector. */
.bdgv-flow .bdgv-amount-selector {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 110px 110px !important;
  overflow:hidden !important;
  min-height:54px !important;
  margin:2px 0 22px !important;
  border:1px solid #ddcfbc !important;
  border-radius:8px !important;
  background:#fff !important;
}

.bdgv-flow .bdgv-amount-title {
  display:flex !important;
  align-items:center !important;
  min-height:54px !important;
  margin:0 !important;
  padding:0 18px !important;
  color:#302b26 !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.25 !important;
}

.bdgv-flow .bdgv-segment-button {
  appearance:none !important;
  -webkit-appearance:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:54px !important;
  margin:0 !important;
  padding:0 12px !important;
  border:0 !important;
  border-left:1px solid #e4dacb !important;
  border-radius:0 !important;
  color:#4e4942 !important;
  background:#fff !important;
  box-shadow:none !important;
  cursor:pointer !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1 !important;
}

.bdgv-flow .bdgv-segment-button.is-selected {
  color:#20180c !important;
  background:#fff6e1 !important;
  box-shadow:0 0 0 1px var(--bdgv-accent) inset !important;
}

.bdgv-flow .bdgv-segment-button:focus-visible {
  position:relative;
  z-index:2;
  outline:2px solid rgba(200,155,60,.42) !important;
  outline-offset:-3px !important;
}

/* Voucher fallback: keep value and label on separate lines. */
.bdgv-flow .bdgv-voucher-placeholder {
  gap:18px !important;
  padding:32px !important;
  text-align:center !important;
}

.bdgv-flow .bdgv-voucher-placeholder > span {
  position:relative !important;
  z-index:2 !important;
  display:block !important;
  max-width:82% !important;
  margin:0 !important;
  padding:0 !important;
  color:#d6b15a !important;
  font-size:clamp(42px,5vw,70px) !important;
  font-weight:400 !important;
  line-height:.88 !important;
  letter-spacing:-.035em !important;
  white-space:nowrap !important;
}

.bdgv-flow .bdgv-voucher-placeholder > small {
  position:relative !important;
  z-index:2 !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:#d6b15a !important;
  font-size:15px !important;
  line-height:1 !important;
  letter-spacing:.20em !important;
  white-space:nowrap !important;
}

.bdgv-flow .bdgv-voucher-placeholder.is-mini {
  gap:8px !important;
  padding:14px !important;
}

.bdgv-flow .bdgv-voucher-placeholder.is-mini > span {
  font-size:30px !important;
  line-height:.9 !important;
}

.bdgv-flow .bdgv-voucher-placeholder.is-mini > small {
  font-size:9px !important;
}

.bdgv-flow .bdgv-voucher-placeholder.is-summary {
  gap:6px !important;
  padding:10px !important;
}

.bdgv-flow .bdgv-voucher-placeholder.is-summary > span {
  max-width:94% !important;
  font-size:20px !important;
  line-height:1 !important;
}

.bdgv-flow .bdgv-voucher-placeholder.is-summary > small {
  display:none !important;
}

@media (max-width:640px) {
  .bdgv-flow .bdgv-gift-choice {
    grid-template-columns:1fr !important;
  }

  .bdgv-flow .bdgv-amount-selector {
    grid-template-columns:1fr 78px 78px !important;
  }

  .bdgv-flow .bdgv-voucher-placeholder > span {
    font-size:clamp(34px,10vw,54px) !important;
  }
}


/* v0.2.6 — typography, checkout breadcrumb and responsive refinement */

/* Remove decorative rectangles everywhere, including checkout and confirmation. */
.bdgv-flow .bdgv-title-ornament,
.bdgv-flow .bdgv-payment-title .bdgv-title-ornament,
.bdgv-flow .bdgv-success .bdgv-title-ornament {
  display:none !important;
  content:none !important;
}

/* Typography aligned to Brera13 proportions rather than oversized landing-page headings. */
.bdgv-flow .bdgv-flow-header h2 {
  font-size:clamp(42px,4.8vw,64px) !important;
  line-height:1.02 !important;
  letter-spacing:-.038em !important;
}

.bdgv-flow .bdgv-flow-card-body h3 {
  font-size:clamp(25px,2.1vw,32px) !important;
  line-height:1.12 !important;
}

.bdgv-flow .bdgv-flow-product-copy h3 {
  font-size:clamp(38px,3.8vw,54px) !important;
  line-height:1.02 !important;
  letter-spacing:-.038em !important;
}

.bdgv-flow .bdgv-payment-title h3 {
  font-size:clamp(40px,4.2vw,58px) !important;
  line-height:1.02 !important;
  letter-spacing:-.038em !important;
}

.bdgv-flow .bdgv-success h3 {
  font-size:clamp(40px,4.2vw,58px) !important;
  line-height:1.02 !important;
  letter-spacing:-.038em !important;
}

.bdgv-flow .bdgv-payment-data > h4,
.bdgv-flow .bdgv-payment-summary > h4 {
  font-size:clamp(25px,2.2vw,31px) !important;
}

.bdgv-flow .bdgv-form-head span {
  font-size:clamp(23px,2vw,28px) !important;
}

/* Same breadcrumb language on detail, checkout and confirmation. */
.bdgv-flow .bdgv-payment-breadcrumb {
  margin:-10px auto 24px !important;
  max-width:1180px;
  justify-content:center;
}

.bdgv-flow .bdgv-payment-breadcrumb button,
.bdgv-flow .bdgv-payment-breadcrumb strong {
  font-size:11px !important;
  line-height:1.25 !important;
}

.bdgv-flow .bdgv-payment-breadcrumb span {
  color:#c69a42;
}

/* Progress remains present but becomes more discreet and balanced. */
.bdgv-flow .bdgv-check-progress {
  width:min(760px,100%);
  max-width:760px !important;
  margin:0 auto 28px !important;
}

.bdgv-flow .bdgv-check-progress div {
  flex:1 1 0;
  justify-content:center;
  gap:8px !important;
  min-width:0;
  font-size:11px !important;
  line-height:1.25;
}

.bdgv-flow .bdgv-check-progress div:not(:last-child)::after {
  width:clamp(38px,5vw,76px) !important;
  margin:0 10px !important;
}

.bdgv-flow .bdgv-check-progress strong {
  flex:0 0 29px;
  width:29px !important;
  height:29px !important;
  font-size:12px;
}

.bdgv-flow .bdgv-payment-title {
  margin:0 0 30px !important;
}

/* Date inputs and all checkout fields stay readable without overflow. */
.bdgv-flow .bdgv-flow-form input[type="date"] {
  min-width:0 !important;
}

.bdgv-flow .bdgv-flow-form-column,
.bdgv-flow .bdgv-payment-data,
.bdgv-flow .bdgv-payment-summary {
  min-width:0;
}

/* Tablet */
@media (max-width:980px) {
  .bdgv-flow .bdgv-flow-header h2 {
    font-size:clamp(40px,7vw,54px) !important;
  }

  .bdgv-flow .bdgv-flow-product-copy h3,
  .bdgv-flow .bdgv-payment-title h3,
  .bdgv-flow .bdgv-success h3 {
    font-size:clamp(36px,6vw,48px) !important;
  }

  .bdgv-flow .bdgv-payment-breadcrumb {
    justify-content:flex-start;
    overflow-x:auto;
    white-space:nowrap;
    padding-bottom:4px;
    scrollbar-width:none;
  }

  .bdgv-flow .bdgv-payment-breadcrumb::-webkit-scrollbar {
    display:none;
  }
}

/* Mobile: every heading and step remains visible without clipping. */
@media (max-width:640px) {
  .bdgv-flow .bdgv-flow-header {
    margin-bottom:32px;
  }

  .bdgv-flow .bdgv-flow-header h2 {
    font-size:36px !important;
    line-height:1.05 !important;
  }

  .bdgv-flow .bdgv-flow-header span {
    margin-top:14px;
    font-size:15px !important;
    line-height:1.5 !important;
  }

  .bdgv-flow .bdgv-flow-product-copy h3 {
    font-size:36px !important;
    line-height:1.04 !important;
  }

  .bdgv-flow .bdgv-payment-title h3,
  .bdgv-flow .bdgv-success h3 {
    font-size:38px !important;
    line-height:1.04 !important;
  }

  .bdgv-flow .bdgv-flow-card-body h3 {
    font-size:27px !important;
  }

  .bdgv-flow .bdgv-payment-data > h4,
  .bdgv-flow .bdgv-payment-summary > h4 {
    font-size:27px !important;
  }

  .bdgv-flow .bdgv-form-head span {
    font-size:24px !important;
  }

  .bdgv-flow .bdgv-check-progress {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px 12px !important;
    width:100% !important;
    margin-bottom:24px !important;
  }

  .bdgv-flow .bdgv-check-progress div {
    justify-content:flex-start !important;
    min-height:38px;
    padding:7px 9px;
    border:1px solid #eadfce;
    border-radius:7px;
    background:rgba(255,255,255,.72);
  }

  .bdgv-flow .bdgv-check-progress div:not(:last-child)::after {
    display:none !important;
  }

  .bdgv-flow .bdgv-payment-breadcrumb {
    margin-top:0 !important;
    margin-bottom:18px !important;
  }

  .bdgv-flow .bdgv-payment-layout {
    gap:26px !important;
  }

  .bdgv-flow .bdgv-summary-total strong {
    font-size:32px !important;
  }
}


/* v0.2.7 — single breadcrumb navigation */
.bdgv-flow .bdgv-payment-breadcrumb {
  margin-bottom:30px !important;
}

.bdgv-flow .bdgv-payment-title {
  margin-top:0 !important;
}

.bdgv-flow.is-payment .bdgv-check-progress,
.bdgv-flow.is-success .bdgv-check-progress {
  display:none !important;
}


/* v0.3.1 — formatted conditions and custom graphic preview */

/* The preview is now only the uploaded graphic. */
.bdgv-flow .bdgv-flow-email-preview {
  display:block;
  width:100%;
  max-width:none;
  margin:26px 0 0;
  padding:0;
  text-align:left;
}

.bdgv-flow .bdgv-flow-email-preview[hidden] {
  display:none !important;
}

.bdgv-flow .bdgv-flow-email-preview > img {
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  margin:0;
  border:1px solid #e6dac8;
  border-radius:4px;
  background:#fff;
  box-shadow:0 22px 58px rgba(18,17,15,.07);
  object-fit:contain;
}

/* Product conditions. */
.bdgv-flow .bdgv-product-terms {
  margin-top:18px;
  overflow:hidden;
  border:1px solid #e1d5c3;
  border-radius:8px;
  background:rgba(255,255,255,.72);
}

.bdgv-flow .bdgv-product-terms[hidden] {
  display:none !important;
}

.bdgv-flow .bdgv-product-terms summary {
  position:relative;
  padding:15px 46px 15px 18px;
  color:#2d2822;
  cursor:pointer;
  list-style:none;
  font-family:"Libre Bodoni","Playfair Display",Georgia,serif;
  font-size:21px;
  line-height:1.2;
}

.bdgv-flow .bdgv-product-terms summary::-webkit-details-marker {
  display:none;
}

.bdgv-flow .bdgv-product-terms summary::after {
  content:"+";
  position:absolute;
  top:50%;
  right:18px;
  color:var(--bdgv-accent);
  font-family:"Manrope",Inter,sans-serif;
  font-size:23px;
  font-weight:400;
  transform:translateY(-50%);
}

.bdgv-flow .bdgv-product-terms[open] summary::after {
  content:"−";
}

.bdgv-flow .bdgv-product-terms-content {
  padding:2px 18px 18px;
  border-top:1px solid #ebe1d4;
  color:#4f4942;
  font-size:14px;
  line-height:1.65;
}

.bdgv-flow .bdgv-product-terms-content > *:first-child {
  margin-top:14px;
}

.bdgv-flow .bdgv-product-terms-content > *:last-child {
  margin-bottom:0;
}

.bdgv-flow .bdgv-product-terms-content h3,
.bdgv-flow .bdgv-product-terms-content h4 {
  margin:18px 0 8px;
  font-size:20px;
  line-height:1.2;
}

.bdgv-flow .bdgv-product-terms-content ul,
.bdgv-flow .bdgv-product-terms-content ol {
  padding-left:22px;
}

.bdgv-flow .bdgv-product-terms-content a {
  color:#9d7325;
  text-decoration:underline;
}

@media (max-width:640px) {
  .bdgv-flow .bdgv-product-terms summary {
    font-size:20px;
  }
}


/* v0.3.2 — original preview box with image-only content and lightbox */

/* Restore the initial preview section structure. */
.bdgv-flow .bdgv-flow-email-preview {
  display:block;
  width:100%;
  max-width:430px;
  margin:28px auto 0;
  padding:0;
  text-align:center;
}

.bdgv-flow .bdgv-flow-email-preview[hidden] {
  display:none !important;
}

.bdgv-flow .bdgv-flow-email-preview > p {
  margin:0 0 12px;
  color:#81796f;
  font-size:12px;
  line-height:1.3;
  letter-spacing:.20em;
  text-transform:uppercase;
}

.bdgv-flow .bdgv-email-card.bdgv-email-card-image-only {
  padding:28px 32px;
  border:1px solid #e6dbcb;
  background:#fff;
  box-shadow:0 22px 58px rgba(18,17,15,.07);
}

.bdgv-flow .bdgv-preview-lightbox-trigger {
  appearance:none !important;
  -webkit-appearance:none !important;
  display:block !important;
  width:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  cursor:zoom-in !important;
}

.bdgv-flow .bdgv-preview-lightbox-trigger:focus-visible {
  outline:2px solid var(--bdgv-accent);
  outline-offset:4px;
}

.bdgv-flow .bdgv-preview-lightbox-trigger > img {
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  margin:0;
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
  object-fit:contain;
}

/* Full-screen image lightbox. */
body.bdgv-lightbox-open {
  overflow:hidden !important;
}

.bdgv-image-lightbox {
  position:fixed;
  z-index:2147483647;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(18px,4vw,52px);
  opacity:0;
  visibility:hidden;
  background:rgba(8,8,7,.92);
  backdrop-filter:blur(8px);
  transition:opacity .18s ease, visibility .18s ease;
}

.bdgv-image-lightbox[hidden] {
  display:none !important;
}

.bdgv-image-lightbox.is-open {
  opacity:1;
  visibility:visible;
}

.bdgv-image-lightbox-stage {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  pointer-events:none;
}

.bdgv-image-lightbox-image {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 72px);
  border:1px solid rgba(229,197,106,.36);
  background:#fff;
  box-shadow:0 34px 110px rgba(0,0,0,.52);
  object-fit:contain;
  pointer-events:auto;
}

.bdgv-image-lightbox-close {
  position:absolute;
  z-index:2;
  top:18px;
  right:22px;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  margin:0;
  padding:0 0 4px;
  border:1px solid rgba(229,197,106,.54);
  border-radius:50%;
  color:#e5c56a;
  background:rgba(17,17,15,.84);
  box-shadow:none;
  cursor:pointer;
  font-family:Arial,sans-serif;
  font-size:32px;
  font-weight:300;
  line-height:1;
}

.bdgv-image-lightbox-close:hover,
.bdgv-image-lightbox-close:focus-visible {
  color:#111;
  background:#e5c56a;
  outline:none;
}

@media (max-width:640px) {
  .bdgv-flow .bdgv-email-card.bdgv-email-card-image-only {
    padding:18px;
  }

  .bdgv-flow .bdgv-flow-email-preview {
    max-width:100%;
  }

  .bdgv-image-lightbox {
    padding:58px 14px 18px;
  }

  .bdgv-image-lightbox-close {
    top:10px;
    right:12px;
    width:42px;
    height:42px;
  }

  .bdgv-image-lightbox-image {
    max-height:calc(100vh - 86px);
  }
}
