/* ============================================================
   Vora Gift Vouchers — Public Stylesheet v1.4
   Design System: Editorial Luxury & Liquid Glass (Cinematic)
   Author: Shaan Designs (shaandesigns.com)
   ============================================================ */

/* ── Design Tokens ──────────────────────────────────────────── */
:root {
  /* Palette */
  --vora-bg:           #f8f9ff;
  --vora-surface:      #f8f9ff;
  --vora-surf-low:     #eef4ff;
  --vora-surf-high:    #dbe9ff;
  --vora-surf-lowest:  #ffffff;
  --vora-on-surface:   #001d36;
  --vora-primary:      #5c5f61;
  --vora-on-primary:   #ffffff;
  --vora-secondary:    #585f69;
  --vora-tertiary:     #735c00;        /* gold accent */
  --vora-tert-fixed:   #ffe088;
  --vora-outline:      #73777f;
  --vora-outline-var:  #c3c6cf;
  --vora-error:        #ba1a1a;

  /* Typography */
  /* Font policy: Vora never depends on a remote font request. Merchant font
     names may resolve locally; these stacks preserve hierarchy everywhere. */
  --vora-serif:   Georgia, 'Times New Roman', serif;
  --vora-sans:    system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --vora-mono:    ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;

  /* Type scale */
  --vora-type-xs: .6875rem;
  --vora-type-sm: .8125rem;
  --vora-type-md: 1rem;
  --vora-type-lg: 1.25rem;
  --vora-type-xl: clamp(2rem, 4vw, 3.25rem);

  /* Spacing scale */
  --vora-space-1: .25rem;
  --vora-space-2: .5rem;
  --vora-space-3: .75rem;
  --vora-space-4: 1rem;
  --vora-space-5: 1.5rem;
  --vora-space-6: 2rem;
  --vora-space-7: 3rem;
  --vora-space-8: 5rem;
  --vora-content-max: 73.75rem;
  --vora-gutter: clamp(1rem, 4vw, 3rem);

  /* Geometry — everything fully rounded */
  --vora-radius-sm: .375rem;
  --vora-radius:    .75rem;
  --vora-radius-lg: 1rem;
  --vora-radius-xl: 1.5rem;
  --vora-radius-full: 9999px;

  /* Liquid Glass */
  --vora-glass:      rgba(255,255,255,0.10);
  --vora-glass-blur: blur(30px);
  --vora-glass-strong: rgba(255,255,255,0.15);
  --vora-glass-strong-blur: blur(40px);

  /* Depth */
  --vora-shadow-sm: 0 4px 16px rgba(0,29,54,0.04);
  --vora-shadow:    0 18px 48px rgba(0,29,54,0.08);
  --vora-shadow-lg: 0 24px 64px rgba(0,29,54,0.14);

  /* Motion */
  --vora-motion-fast: 160ms;
  --vora-motion-base: 240ms;
  --vora-motion-slow: 400ms;
  --vora-ease: cubic-bezier(0.2, 0, 0, 1);
  --vora-transition: var(--vora-motion-base) var(--vora-ease);
  --vora-transition-slow: var(--vora-motion-slow) var(--vora-ease);
  --vora-focus-width: 3px;
  --vora-focus-offset: 3px;
  --vora-focus-color: var(--vora-tertiary);
  --vora-focus-colour: var(--vora-focus-color); /* retained spelling alias */
  --vora-header-h:   80px;

  /* Canonical breakpoint policy (CSS custom properties cannot be used in
     media conditions): compact 480px, mobile 720px, tablet 960px, wide 1200px. */

  /* Legacy compat aliases (basket/checkout/confirmation still use these) */
  --sdgv-primary:        var(--vora-on-surface);
  --sdgv-primary-c:      var(--vora-on-surface);
  --sdgv-primary-light:  var(--vora-primary);
  --sdgv-accent:         var(--vora-tertiary);
  --sdgv-accent-dark:    #5a4700;
  --sdgv-bg:             var(--vora-bg);
  --sdgv-surface:        var(--vora-surf-lowest);
  --sdgv-surface-low:    var(--vora-surf-low);
  --sdgv-surface-lowest: var(--vora-surf-lowest);
  --sdgv-surface-cont:   var(--vora-surf-high);
  --sdgv-text:           var(--vora-on-surface);
  --sdgv-text-muted:     var(--vora-secondary);
  --sdgv-text-light:     var(--vora-outline);
  --sdgv-border:         rgba(195,198,207,0.25);
  --sdgv-outline-var:    var(--vora-outline-var);
  --sdgv-success:        #2d6a4f;
  --sdgv-success-l:      rgba(45,106,79,0.08);
  --sdgv-danger:         var(--vora-error);
  --sdgv-danger-l:       #ffdad6;
  --sdgv-radius:         var(--vora-radius);
  --sdgv-radius-lg:      var(--vora-radius-lg);
  --sdgv-radius-xl:      var(--vora-radius-xl);
  --sdgv-radius-full:    var(--vora-radius-full);
  --sdgv-shadow:         var(--vora-shadow);
  --sdgv-shadow-hover:   var(--vora-shadow-lg);
  --sdgv-shadow-sm:      var(--vora-shadow-sm);
  --sdgv-font-serif:     var(--vora-serif);
  --sdgv-font-sans:      var(--vora-sans);
  --sdgv-transition:     var(--vora-transition);
  --sdgv-header-height:  var(--vora-header-h);
}

/* 2.16.19 — first-class event ticket identity. */
.sdgv-card--ticket { position:relative; border-style:dashed; border-color:color-mix(in srgb,var(--sdgv-accent,#b8872a) 62%,#d7d7d7); }
.sdgv-card--ticket::before,.sdgv-card--ticket::after { content:""; position:absolute; top:58%; width:20px; height:20px; border-radius:50%; background:var(--sdgv-page-bg,#fff); z-index:3; }
.sdgv-card--ticket::before { left:-11px; }
.sdgv-card--ticket::after { right:-11px; }
.sdgv-card--ticket .sdgv-card__badge { background:#10253f; color:#fff; border:1px solid rgba(255,255,255,.72); letter-spacing:.16em; }
.sdgv-card__event-meta { display:grid; gap:3px; margin:10px 0 0; color:var(--sdgv-text,#151515); font-size:13px; }
.sdgv-card__event-meta span { color:var(--sdgv-muted,#737780); font-size:12px; }
.sdgv-ticket-event-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-width:760px; margin:22px auto 0; padding:18px; border:1px dashed var(--sdgv-accent,#b8872a); border-radius:14px; background:color-mix(in srgb,var(--sdgv-accent,#b8872a) 7%,transparent); text-align:left; }
.sdgv-ticket-event-summary div { display:grid; gap:4px; }
.sdgv-ticket-event-summary small { color:var(--sdgv-muted,#737780); text-transform:uppercase; letter-spacing:.12em; }
.sdgv-ticket-event-summary strong { font-size:16px; }
.sdgv-ticket-event-summary > span { grid-column:1/-1; padding-top:10px; border-top:1px dashed color-mix(in srgb,var(--sdgv-accent,#b8872a) 45%,transparent); color:var(--sdgv-muted,#737780); font-size:13px; }
@media (max-width:600px) { .sdgv-ticket-event-summary { grid-template-columns:1fr; } .sdgv-ticket-event-summary > span { grid-column:auto; } }

/* ── Reset ──────────────────────────────────────────────────── */
.sdgv-wrap *, .sdgv-wrap *::before, .sdgv-wrap *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}

/* 2.16.16 — customer voucher check and service reservation journey. */
.sdgv-wrap .sdgv-redeem-wrap {
  display:block;
  width:min(100%, 920px);
  max-width:920px;
  margin:0 auto;
  padding:48px 24px 88px;
}
.sdgv-wrap .sdgv-redeem__right {
  width:100%;
  padding:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--vora-outline) 28%,transparent);
  border-radius:28px;
  background:color-mix(in srgb,var(--vora-surface,#fff) 96%,transparent);
  box-shadow:0 24px 70px rgba(0,29,54,.10);
  backdrop-filter:blur(18px);
}
.sdgv-check-header {
  padding:clamp(30px,5vw,54px);
  border-bottom:1px solid color-mix(in srgb,var(--vora-outline) 22%,transparent);
  background:linear-gradient(145deg,color-mix(in srgb,var(--vora-primary) 5%,var(--vora-surface,#fff)),var(--vora-surface,#fff));
}
.sdgv-check-header .sdgv-kicker { margin:0 0 12px; }
.sdgv-check-header .sdgv-page-title {
  margin:0; max-width:700px; font-size:clamp(38px,6vw,64px); line-height:.98; letter-spacing:-.035em;
}
.sdgv-check-header .sdgv-page-subtitle {
  max-width:680px; margin:18px 0 0; font-size:17px; line-height:1.65;
}
.sdgv-check-steps {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;
  margin:34px 0 0; padding:0; list-style:none;
}
.sdgv-check-steps li {
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
  min-width:0; padding:18px; border:1px solid color-mix(in srgb,var(--vora-outline) 24%,transparent);
  border-radius:14px; background:color-mix(in srgb,var(--vora-surface,#fff) 82%,transparent);
}
.sdgv-check-steps li > span {
  display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px;
  border-radius:50%; background:var(--vora-tertiary,var(--vora-primary)); color:#fff;
  font-weight:800; font-size:14px;
}
.sdgv-check-section-heading > span,
.sdgv-redemption-boundary > span {
  display:grid; place-items:center; width:34px; height:34px; grid-row:1 / span 2;
  border-radius:50%; background:var(--vora-tertiary,var(--vora-primary)); color:#fff;
  font-weight:800; font-size:14px;
}
.sdgv-check-steps strong,
.sdgv-check-steps small { min-width:0; max-width:100%; overflow-wrap:normal; word-break:normal; hyphens:none; }
.sdgv-check-steps strong { color:var(--vora-on-surface); font-size:14px; line-height:1.25; }
.sdgv-check-steps small { color:var(--vora-secondary); font-size:12px; line-height:1.35; }
.sdgv-wrap .sdgv-redemption-form { padding:clamp(28px,5vw,52px); }
.sdgv-check-section-heading {
  display:grid; grid-template-columns:38px minmax(0,1fr); gap:3px 12px; align-items:center; margin:0 0 24px;
}
.sdgv-check-section-heading > div { display:grid; gap:3px; }
.sdgv-check-section-heading strong { color:var(--vora-on-surface); font-size:20px; line-height:1.25; }
.sdgv-check-section-heading small { color:var(--vora-secondary); font-size:13px; line-height:1.45; }
.sdgv-wrap .sdgv-redeem__input-label { margin:0 0 8px; font-size:11px; }
.sdgv-wrap .sdgv-redeem__code-input {
  min-height:58px; margin-bottom:14px; border-radius:14px; background:var(--vora-surface,#fff);
  font-size:18px; box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--vora-outline) 8%,transparent);
}
.sdgv-wrap .sdgv-redeem__btn-row { display:block; margin:0; }
.sdgv-wrap .sdgv-redeem__btn-row .sdgv-btn--balance { width:100%; min-height:56px; border-radius:14px; }
.sdgv-wrap .sdgv-route-feedback { margin-top:14px; border-radius:12px; }
.sdgv-wrap .sdgv-voucher-state {
  margin-top:24px !important; padding:0; overflow:hidden;
  border:1px solid color-mix(in srgb,var(--vora-tertiary) 35%,var(--vora-outline) 15%);
  border-radius:18px; background:var(--vora-surface,#fff); box-shadow:0 14px 36px rgba(0,29,54,.07);
}
.sdgv-wrap .sdgv-voucher-state > .sdgv-ledger__rows {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0; padding:0;
}
.sdgv-wrap .sdgv-voucher-state > .sdgv-ledger__rows > div {
  display:grid; gap:6px; padding:20px; border-right:1px solid color-mix(in srgb,var(--vora-outline) 18%,transparent);
}
.sdgv-wrap .sdgv-voucher-state > .sdgv-ledger__rows > div:last-child { border-right:0; }
.sdgv-wrap .sdgv-voucher-state dt {
  color:var(--vora-secondary); font-size:11px; font-weight:750; letter-spacing:.08em; text-transform:uppercase;
}
.sdgv-wrap .sdgv-voucher-state dd { margin:0; color:var(--vora-on-surface); font-size:17px; font-weight:700; }
.sdgv-wrap .sdgv-voucher-state__booking {
  margin:0 !important; padding:28px; border-top:1px solid color-mix(in srgb,var(--vora-outline) 20%,transparent) !important;
  background:color-mix(in srgb,var(--vora-primary) 3%,var(--vora-surface,#fff));
}
.sdgv-booking-current {
  margin:0 0 18px; padding:13px 15px; border-radius:10px;
  background:color-mix(in srgb,var(--vora-tertiary) 10%,transparent); color:var(--vora-on-surface); font-size:14px;
}
.sdgv-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sdgv-booking-fields label,
.sdgv-booking-email { color:var(--vora-secondary); font-size:12px; font-weight:700; letter-spacing:.04em; }
.sdgv-booking-fields select,
.sdgv-booking-email input {
  width:100%; min-height:52px; margin-top:7px; padding:12px 14px;
  border:1px solid color-mix(in srgb,var(--vora-outline) 38%,transparent); border-radius:12px;
  background:var(--vora-surface,#fff); color:var(--vora-on-surface); font-size:16px;
}
.sdgv-booking-email { display:block; margin-top:16px; }
.sdgv-wrap #sdgv-public-booking-submit { width:100%; min-height:54px; margin-top:16px; border-radius:12px; }
.sdgv-redemption-boundary {
  display:grid; grid-template-columns:38px minmax(0,1fr); gap:12px; align-items:start;
  margin-top:24px; padding:20px; border-radius:16px;
  background:color-mix(in srgb,var(--vora-tertiary) 8%,var(--vora-surface,#fff));
}
.sdgv-redemption-boundary strong { display:block; margin:2px 0 5px; color:var(--vora-on-surface); font-size:16px; }
.sdgv-redemption-boundary p { margin:0; color:var(--vora-secondary); font-size:14px; line-height:1.6; }
.sdgv-wrap .sdgv-redeem__help { margin:0; padding:0 clamp(28px,5vw,52px) 40px; color:var(--vora-secondary); font-size:14px; }
@media (max-width:700px) {
  .sdgv-wrap .sdgv-redeem-wrap { padding:22px 14px 64px; }
  .sdgv-wrap .sdgv-redeem__right { border-radius:20px; }
  .sdgv-check-header { padding:30px 22px; }
  .sdgv-check-header .sdgv-page-title { font-size:clamp(36px,11vw,50px); }
  .sdgv-check-header .sdgv-page-subtitle { font-size:15px; }
  .sdgv-check-steps { grid-template-columns:1fr; margin-top:24px; }
  .sdgv-check-steps li { min-height:62px; display:grid; grid-template-columns:34px minmax(0,1fr); grid-template-rows:auto auto; gap:3px 12px; align-items:center; }
  .sdgv-check-steps li > span { grid-row:1 / span 2; }
  .sdgv-wrap .sdgv-redemption-form { padding:26px 20px; }
  .sdgv-wrap .sdgv-voucher-state > .sdgv-ledger__rows { grid-template-columns:1fr; }
  .sdgv-wrap .sdgv-voucher-state > .sdgv-ledger__rows > div { padding:15px 18px; border-right:0; border-bottom:1px solid color-mix(in srgb,var(--vora-outline) 18%,transparent); }
  .sdgv-wrap .sdgv-voucher-state > .sdgv-ledger__rows > div:last-child { border-bottom:0; }
  .sdgv-wrap .sdgv-voucher-state__booking { padding:22px 18px; }
  .sdgv-booking-fields { grid-template-columns:1fr; }
  .sdgv-wrap .sdgv-redeem__help { padding:0 20px 30px; overflow-wrap:anywhere; }
}
/* NOTE: .sdgv-redeem-wrap's actual max-width on the live page is forced by an
   !important "single definitive rule" in sdgv-premium.css (search that file
   for "single definitive rule"), which loads after this file and beats any
   non-!important rule here regardless of selector specificity. Any further
   desktop/mobile sizing for this page belongs there, not here — a rule added
   in this file will silently have no effect. */

.sdgv-wrap {
  font-family: var(--vora-sans);
  font-size: var(--sdgv-body-font-size, 16px);
  color: var(--vora-on-surface);
  background: var(--vora-bg);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.sdgv-wrap a { color: inherit; text-decoration: none; }
.sdgv-wrap img { display: block; max-width: 100%; }

/* Cinematic atmospheric background */
/* Hidden when a custom page background is set to avoid old bg showing through */
.sdgv-wrap::before {
  content: '';
  position: fixed;
  top: -10%; right: -5%;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: var(--vora-surf-low);
  filter: blur(120px);
  opacity: 0.6;
  pointer-events: none;
  z-index: 0;
}
/* Suppress atmospheric blobs when custom page background is active */
.sdgv-wrap:has(.sdgv-page-bg-media)::before { display: none; }
.sdgv-wrap::after {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(92,95,97,0.05), transparent);
  pointer-events: none;
  z-index: 0;
}
/* When page bg media is present, use a subtle overlay instead of the gradient */
.sdgv-wrap:has(.sdgv-page-bg-media)::after {
  background: rgba(250,249,246,0.62);
  z-index: 1;
}
.sdgv-wrap > * { position: relative; z-index: 2; }
.sdgv-wrap > .sdgv-page-bg-media {
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
}
.sdgv-page-bg-media--image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.sdgv-page-bg-media--video {
  object-fit: cover;
}
/* ── Liquid Glass Utility ────────────────────────────────────── */
.sdgv-glass {
  background: var(--vora-glass);
  backdrop-filter: var(--vora-glass-blur);
  -webkit-backdrop-filter: var(--vora-glass-blur);
  border-top: 0.5px solid rgba(255,255,255,0.4);
}
.sdgv-glass-strong {
  background: var(--vora-glass-strong);
  backdrop-filter: var(--vora-glass-strong-blur);
  -webkit-backdrop-filter: var(--vora-glass-strong-blur);
  border-top: 0.5px solid rgba(255,255,255,0.4);
}

/* ── Cinematic Floating NAV ─────────────────────────────────── */
.sdgv-header {
  position: fixed;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 960px;
  z-index: 100;
  height: 64px;
  background: rgba(255,255,255,0.10);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border-radius: var(--vora-radius-full);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  gap: 16px;
  box-shadow: var(--vora-shadow);
}
/* Page content offset for floating nav */
.sdgv-nav-offset { padding-top: 120px; }

.sdgv-header__logo { display: flex; align-items: center; }
.sdgv-header__logo img { max-height: 36px; max-width: 140px; object-fit: contain; }
.sdgv-header__logo--text {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--vora-on-surface);
  letter-spacing: -0.01em;
}
.sdgv-header__nav {
  display: none;
  align-items: center;
  gap: 32px;
}
@media (min-width: 640px) { .sdgv-header__nav { display: flex; } }
.sdgv-header__nav a {
  font-family: var(--vora-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--vora-primary);
  opacity: 0.8;
  transition: all var(--vora-transition);
  text-decoration: none;
}
.sdgv-header__nav a:hover { opacity: 1; color: var(--vora-on-surface); }
.sdgv-header__nav a.is-active { font-weight: 700; color: var(--vora-tertiary); opacity: 1; border-bottom: 1px solid rgba(115,92,0,0.2); }
.sdgv-header__actions { display: flex; align-items: center; gap: 12px; }
.sdgv-header__actions button, .sdgv-header__actions a {
  display: flex; align-items: center; justify-content: center;
  padding: 6px;
  color: var(--vora-primary);
  background: none; border: none; cursor: pointer;
  transition: color var(--vora-transition);
  font-size: 22px;
}
.sdgv-header__actions button:hover, .sdgv-header__actions a:hover { color: var(--vora-on-surface); }
.sdgv-basket-icon {
  position: relative;
  color: var(--vora-primary);
  transition: color var(--vora-transition);
}
.sdgv-basket-icon:hover { color: var(--vora-on-surface); }
.sdgv-basket-count {
  position: absolute;
  top: 0; right: 0;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--vora-primary);
  display: block;
}
.sdgv-basket-count:empty, .sdgv-basket-count[style*="none"] { display: none; }

/* ── Mobile slide-in drawer (replaces old sidemenu) ────────── */
.sdgv-sidemenu {
  position: fixed; top: 0; left: 0;
  width: 300px; max-width: 85vw; height: 100%;
  background: var(--vora-surf-lowest);
  z-index: 200;
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
  display: flex; flex-direction: column;
  box-shadow: 40px 0 80px rgba(0,29,54,0.12);
}
.sdgv-sidemenu.is-open { transform: translateX(0); }
.sdgv-sidemenu__close {
  background: none; border: none;
  padding: 22px 28px;
  font-size: 11px; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--vora-outline);
  cursor: pointer; text-align: left;
  font-family: var(--vora-sans);
  border-bottom: 1px solid rgba(195,198,207,0.2);
}
.sdgv-sidemenu__nav { display: flex; flex-direction: column; }
.sdgv-sidemenu__nav a {
  display: block; padding: 18px 28px;
  font-family: var(--vora-serif); font-style: italic; font-size: 20px;
  color: var(--vora-on-surface);
  border-bottom: 1px solid rgba(195,198,207,0.15);
  transition: padding-left var(--vora-transition);
}
.sdgv-sidemenu__nav a:hover { padding-left: 40px; color: var(--vora-tertiary); }
.sdgv-overlay {
  position: fixed; inset: 0;
  background: rgba(0,29,54,0.35);
  backdrop-filter: blur(4px);
  z-index: 150; opacity: 0; pointer-events: none;
  transition: opacity 0.35s ease;
}
.sdgv-overlay.is-visible { opacity: 1; pointer-events: all; }

/* ── STOREFRONT — CINEMATIC HERO ────────────────────────────── */
.sdgv-cinematic-hero {
  text-align: center;
  padding: 80px 24px 60px;
}
.sdgv-cinematic-hero__title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: clamp(52px, 8vw, 96px);
  font-weight: 400;
  color: var(--vora-on-surface);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
  opacity: 0.9;
}
.sdgv-cinematic-hero__sub {
  font-family: var(--vora-sans);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vora-primary);
  max-width: 480px;
  margin: 0 auto;
  line-height: 1.7;
}

/* ── UTILITY BAR (replaces filter bar) ─────────────────────── */
.sdgv-util-bar {
  margin: 0 auto 48px;
  max-width: 1200px;
  padding: 0 48px;
}
.sdgv-util-bar__inner {
  background: var(--vora-glass);
  backdrop-filter: var(--vora-glass-blur);
  -webkit-backdrop-filter: var(--vora-glass-blur);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: var(--vora-radius-full);
  padding: 14px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.sdgv-util-bar__cats {
  display: flex; align-items: center; gap: 28px;
  overflow-x: auto;
  -ms-overflow-style: none; scrollbar-width: none;
}
.sdgv-util-bar__cats::-webkit-scrollbar { display: none; }
.sdgv-util-bar__left {
  display: flex;
  align-items: center;
  min-width: 220px;
}
.sdgv-util-bar__cat {
  font-family: var(--vora-sans);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--vora-on-surface);
  white-space: nowrap;
  background: none; border: none; cursor: pointer;
  transition: opacity var(--vora-transition); padding: 0;
  opacity: 0.5;
}
.sdgv-util-bar__cat.is-active, .sdgv-util-bar__cat:hover { opacity: 1; }
.sdgv-util-bar__right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.sdgv-util-bar__filter-label {
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(92,95,97,0.4); white-space: nowrap;
}
.sdgv-util-bar__sort {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--vora-sans); font-size: 11px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--vora-on-surface);
  background: rgba(255,255,255,0.4);
  border: none; border-radius: var(--vora-radius-full);
  padding: 8px 18px; cursor: pointer;
  transition: background var(--vora-transition);
}
.sdgv-util-bar__filter-select {
  min-width: 240px;
  background: rgba(255,255,255,0.68);
  border: 1px solid rgba(195,198,207,0.28);
}
.sdgv-util-bar__sort:hover { background: rgba(255,255,255,0.7); }
.sdgv-util-bar__search {
  min-width: 180px;
  max-width: 240px;
  font-family: var(--vora-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--vora-on-surface);
  background: rgba(255,255,255,0.52);
  border: 1px solid rgba(195,198,207,0.28);
  border-radius: var(--vora-radius-full);
  padding: 12px 22px;
  outline: none;
  min-height: 46px;
}
.sdgv-util-bar__search::placeholder {
  color: rgba(92,95,97,0.55);
}
.sdgv-util-bar__result-count {
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(92,95,97,0.5);
}

/* ── VOUCHER GRID ────────────────────────────────────────────── */
.sdgv-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  padding: 0 48px 80px;
  max-width: 1200px;
  margin: 0 auto;
}
@media (max-width: 960px) { .sdgv-grid { grid-template-columns: repeat(2,1fr); padding: 0 24px 60px; gap: 28px; } }
@media (max-width: 580px) { .sdgv-grid { grid-template-columns: 1fr; padding: 0 16px 48px; gap: 20px; } }
@media (min-width: 961px) and (max-width: 1100px) { .sdgv-grid { gap: 28px; padding: 0 32px 60px; } }

/* ── CINEMATIC CARD ──────────────────────────────────────────── */
.sdgv-card {
  background: #ffffff;
  background-image: linear-gradient(160deg, rgba(255,255,255,1) 0%, rgba(248,246,242,0.9) 100%);
  border-radius: 20px;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,29,54,0.06), 0 20px 40px rgba(0,29,54,0.07);
  transition: transform 0.45s cubic-bezier(0.4,0,0.2,1), box-shadow 0.45s cubic-bezier(0.4,0,0.2,1);
  position: relative;
  border: 1px solid rgba(195,198,207,0.18);
}
.sdgv-card:hover { transform: translateY(-6px); box-shadow: 0 2px 6px rgba(0,29,54,0.04), 0 32px 60px rgba(0,29,54,0.13); }
.sdgv-card__image-link {
  display: block;
  overflow: hidden;
  aspect-ratio: 16/10;
  background: var(--vora-surf-high);
}
.sdgv-card__image {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.55s cubic-bezier(0.4,0,0.2,1);
}
.sdgv-card:hover .sdgv-card__image { transform: scale(1.06); }
.sdgv-card__image--placeholder { aspect-ratio: 16/10;
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--vora-surf-high), var(--vora-surf-low));
}
.sdgv-card__badge {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  background: rgba(26,26,26,0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  font-size: 8px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 9999px;
}
.sdgv-card__body {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; text-align: center;
  padding: 24px 24px 28px;
  gap: 0;
}
.sdgv-card__cat {
  font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(92,95,97,0.5); margin-bottom: 8px;
}
.sdgv-card__title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 24px; font-weight: 400;
  color: var(--vora-on-surface);
  line-height: 1.2; margin-bottom: 10px;
  min-height: 3.6rem; display: flex; align-items: center; justify-content: center;
}
.sdgv-card__title a:hover { color: var(--vora-tertiary); }
.sdgv-card__divider {
  width: 40px; border: none; border-top: 1px solid rgba(195,198,207,0.35);
  margin: 0 auto 14px;
}
.sdgv-card__more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin: 0 auto 16px;
  padding: 0 18px;
  border: 1px solid rgba(0,29,54,0.16);
  border-radius: var(--vora-radius-full);
  color: var(--vora-on-surface);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-decoration: none;
  text-transform: uppercase;
  transition: all var(--vora-transition);
}
.sdgv-card__more:hover {
  background: var(--vora-on-surface);
  border-color: var(--vora-on-surface);
  color: #fff;
  transform: translateY(-1px);
}
.sdgv-card__desc { font-size: 13px; color: var(--vora-secondary); line-height: 1.65; margin-bottom: 18px; flex: 1; max-width: 28ch; }
.sdgv-card__footer {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 0;
}
.sdgv-card__price {
  font-family: var(--vora-sans); font-size: 15px; font-weight: 300;
  color: var(--vora-on-surface); letter-spacing: 0.01em;
}
.sdgv-card__actions { display: flex; gap: 8px; align-items: center; }
.sdgv-card__actions .sdgv-btn { flex: 1; min-width: 0; }
.sdgv-card__variants {
  display: flex; flex-direction: column; gap: 6px;
  margin-top: 12px; width: 100%;
  animation: sdgv-fade-in 0.25s ease;
}
@keyframes sdgv-fade-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.sdgv-variant-btn {
  display: block; width: 100%; text-align: center;
  padding: 11px 16px;
  background: rgba(255,255,255,0.5);
  border: none; border-radius: var(--vora-radius-full);
  font-family: var(--vora-sans); font-size: 11px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--vora-on-surface); cursor: pointer;
  transition: all var(--vora-transition);
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.35;
  min-height: 44px;
}
.sdgv-variant-btn:hover {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface)));
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #fff));
}

/* ── EMPTY STATE ─────────────────────────────────────────────── */
.sdgv-empty { grid-column: 1/-1; text-align: center; padding: 80px 24px; color: var(--vora-outline); font-size: 15px; }
.sdgv-empty-state { text-align: center; padding: 80px 24px; }
.sdgv-empty-state h2 { font-family: var(--vora-serif); font-style: italic; font-size: 32px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 12px; }
.sdgv-empty-state p { color: var(--vora-secondary); margin-bottom: 32px; }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.sdgv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--vora-sans); font-size: 11px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  border: none; border-radius: var(--vora-radius-full);
  padding: 13px 24px; cursor: pointer;
  transition: all var(--vora-transition);
  white-space: nowrap; text-decoration: none; line-height: 1;
}
.sdgv-btn--primary {
  background: var(--vora-on-surface); color: #fff;
  box-shadow: 0 8px 24px rgba(0,29,54,0.12);
}
.sdgv-btn--primary:hover { background: var(--sdgv-hover-bg, var(--vora-on-surface)); color: var(--sdgv-hover-text, #fff); transform: translateY(-1px); box-shadow: 0 14px 32px rgba(0,29,54,0.18); }
.sdgv-btn--outline {
  background: var(--sdgv-btn-bg, var(--vora-on-surface));
  color: var(--sdgv-btn-text, #ffffff);
  border: none;
}
.sdgv-btn--outline:hover { background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))); color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)); transform: translateY(-1px); box-shadow: 0 14px 32px rgba(0,29,54,0.18); }
.sdgv-btn--secondary { background: var(--vora-surf-low); color: var(--vora-on-surface); }
.sdgv-btn--secondary:hover { background: var(--vora-surf-high); }
.sdgv-btn--full { width: 100%; }
.sdgv-btn--large { font-size: 12px; padding: 17px 36px; }
.sdgv-btn:disabled, .sdgv-btn.is-loading { opacity: 0.45; cursor: not-allowed; pointer-events: none; }
.sdgv-btn.is-loading::after {
  content: ''; width: 14px; height: 14px;
  border: 2px solid currentColor; border-top-color: transparent;
  border-radius: 50%; animation: sdgv-spin 0.6s linear infinite;
}
@keyframes sdgv-spin { to { transform: rotate(360deg); } }

/* ── TOAST ───────────────────────────────────────────────────── */
.sdgv-toast {
  position: fixed; bottom: 32px; right: 32px; z-index: 999;
  background: var(--vora-on-surface); color: #fff;
  padding: 16px 24px; border-radius: var(--vora-radius-full);
  font-family: var(--vora-sans); font-size: 13px; letter-spacing: 0.05em;
  box-shadow: var(--vora-shadow-lg); transform: translateY(12px);
  opacity: 0; pointer-events: none; transition: all 0.3s ease; max-width: 340px;
}
.sdgv-toast.is-visible { transform: translateY(0); opacity: 1; pointer-events: all; }
.sdgv-toast a { color: #fff; font-weight: 700; text-decoration: underline; pointer-events: all; }
.sdgv-toast--success { background: #2d6a4f; }
.sdgv-toast--error   { background: var(--vora-error); }

/* ── CINEMATIC FOOTER ────────────────────────────────────────── */
.sdgv-footer {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto minmax(220px, 1fr);
  align-items: start;
  gap: 20px;
  padding: 40px 48px;
  background: var(--vora-surface);
}
.sdgv-footer__brand {
  font-family: var(--vora-serif); font-style: italic; font-size: 18px;
  color: var(--vora-primary);
}
.sdgv-footer__links { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; }
.sdgv-footer__links a {
  font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--vora-primary); opacity: 0.6; transition: all var(--vora-transition);
}
.sdgv-footer__links a:hover { opacity: 1; color: var(--vora-tertiary); }
.sdgv-footer__copy {
  font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--vora-primary); opacity: 0.4;
}
.sdgv-footer__contact {
  justify-self: end;
  text-align: right;
  font-family: var(--vora-sans);
  font-size: 11px;
  line-height: 1.7;
  color: var(--vora-primary);
  opacity: 0.58;
  max-width: 340px;
}
.sdgv-footer__contact a { color: inherit; text-decoration: none; }
.sdgv-footer__contact a:hover { color: var(--vora-tertiary); }
@media (max-width: 720px) { .sdgv-footer { grid-template-columns: 1fr; text-align: center; padding: 32px 24px; } .sdgv-footer__links { justify-content: center; } .sdgv-footer__contact { justify-self: center; text-align: center; } }

.sdgv-legal-page {
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 92px) 24px clamp(56px, 8vw, 110px);
}
.sdgv-legal-page__eyebrow {
  display: block;
  margin: 28px 0 10px;
  font-family: var(--vora-sans);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vora-outline);
}
.sdgv-legal-page__title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-weight: 400;
  margin: 0 0 30px;
}
.sdgv-legal-page__body {
  padding: clamp(28px, 4vw, 46px);
  border: 1px solid rgba(195,198,207,0.24);
  border-radius: var(--vora-radius-lg);
  background: rgba(255,255,255,0.62);
  box-shadow: 0 24px 70px rgba(0,29,54,0.06);
  color: var(--vora-secondary);
  line-height: 1.85;
}
.sdgv-legal-page__body p {
  margin: 0 0 1.2em;
}
.sdgv-legal-page__body p:last-child {
  margin-bottom: 0;
}

/* ── SECTION ALT (Need Assistance) ──────────────────────────── */
.sdgv-section-alt { background: var(--vora-surf-low); padding: 60px 48px; margin-top: 20px; }
.sdgv-section-alt__inner { max-width: 1100px; margin: 0 auto; text-align: center; }
.sdgv-section-alt h2 { font-family: var(--vora-serif); font-style: italic; font-size: 32px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 28px; }

/* ── CHECKOUT & BASKET PAGES ─────────────────────────────────── */
/* Note: width/padding for .sdgv-wrap--checkout consolidated at v2.9.5.22 below and in sdgv-premium.css */
.sdgv-wrap--checkout { margin: 0 auto; padding: 54px 0 88px; }
.sdgv-wrap--page { padding: 60px 32px; max-width: 900px; margin: 0 auto; }
.sdgv-page-inner { max-width: 640px; margin: 0 auto; }
.sdgv-page-title { font-family: var(--vora-serif); font-style: italic; font-size: clamp(32px,4vw,52px); font-weight: 400; color: var(--vora-on-surface); letter-spacing: -0.02em; line-height: 1.1; margin-bottom: 12px; }
.sdgv-page-subtitle { font-size: 14px; color: var(--vora-secondary); line-height: 1.6; margin-bottom: 40px; }

/* Basket */
.sdgv-basket-layout { display: flex; gap: 40px; flex-wrap: wrap; align-items: flex-start; }
.sdgv-basket-items  { flex: 1 1 400px; }
.sdgv-basket-summary, .sdgv-basket__sidebar { flex: 0 0 320px; position: sticky; top: 120px; }
.sdgv-basket-item {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 20px 0; border-bottom: 1px solid rgba(195,198,207,0.2);
}
.sdgv-basket-item:first-child { border-top: 1px solid rgba(195,198,207,0.2); }
.sdgv-basket-item__image { flex-shrink: 0; width: 72px; height: 72px; border-radius: var(--vora-radius); overflow: hidden; background: var(--vora-surf-low); }
.sdgv-basket-item__image img { width: 100%; height: 100%; object-fit: cover; }
.sdgv-basket-item__info { flex: 1; }
.sdgv-basket-item__title { font-family: var(--vora-serif); font-style: italic; font-size: 17px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 4px; }
.sdgv-basket-item__variant { font-size: 12px; color: var(--vora-secondary); }
.sdgv-basket-item__price { font-size: 16px; font-weight: 600; color: var(--vora-on-surface); white-space: nowrap; }
.sdgv-basket-item__remove { font-size: 10px; color: var(--vora-outline); background: none; border: none; cursor: pointer; padding: 0; text-transform: uppercase; letter-spacing: 0.1em; transition: color var(--vora-transition); }
.sdgv-basket-item__remove:hover { color: var(--vora-error); }
.sdgv-basket-item__actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.sdgv-basket-empty { text-align: center; padding: 80px 24px; }
.sdgv-basket-empty svg { margin: 0 auto 24px; opacity: 0.2; color: var(--vora-primary); }
.sdgv-basket-empty h2 { font-family: var(--vora-serif); font-style: italic; font-size: 32px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 12px; }
.sdgv-basket-empty p { color: var(--vora-secondary); margin-bottom: 32px; }

/* Basket Summary */
.sdgv-summary { background: rgba(255,255,255,0.6); backdrop-filter: blur(20px); border-radius: var(--vora-radius-xl); padding: 28px; box-shadow: var(--vora-shadow); }
.sdgv-summary h2 { font-family: var(--vora-serif); font-style: italic; font-size: 22px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid rgba(195,198,207,0.2); }
.sdgv-summary__row { display: flex; justify-content: space-between; padding: 10px 0; font-size: 14px; color: var(--vora-secondary); border-bottom: 1px solid rgba(195,198,207,0.15); }
.sdgv-summary__total { display: flex; justify-content: space-between; align-items: baseline; padding: 18px 0 0; font-size: 22px; font-family: var(--vora-serif); font-style: italic; color: var(--vora-on-surface); }
.sdgv-summary__total-label { font-family: var(--vora-sans); font-style: normal; font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--vora-outline); }

/* Basket Summary (basket page variant) */
.sdgv-basket-summary { background: rgba(255,255,255,0.6); backdrop-filter: blur(20px); border-radius: var(--vora-radius-xl); padding: 28px; box-shadow: var(--vora-shadow); }
.sdgv-basket-summary h3 { font-family: var(--vora-serif); font-style: italic; font-size: 22px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 20px; }
.sdgv-basket-summary__row { display: flex; justify-content: space-between; padding: 10px 0; font-size: 14px; color: var(--vora-secondary); border-bottom: 1px solid rgba(195,198,207,0.15); }
.sdgv-basket-summary__row--total { font-weight: 700; color: var(--vora-on-surface); border-bottom: none; padding-top: 16px; font-size: 16px; }
.sdgv-how-it-works { margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(195,198,207,0.2); }
.sdgv-how-it-works h4 { font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--vora-outline); margin-bottom: 12px; }
.sdgv-how-it-works ol { padding-left: 16px; display: flex; flex-direction: column; gap: 8px; }
.sdgv-how-it-works ol li { font-size: 13px; color: var(--vora-secondary); line-height: 1.5; }

/* Checkout */
.sdgv-checkout-layout { display: flex; gap: 40px; flex-wrap: wrap; align-items: flex-start; }
.sdgv-checkout-form   { flex: 1 1 480px; }
.sdgv-checkout-sidebar { flex: 0 0 320px; }
.sdgv-checkout-header { margin-bottom: 32px; }
.sdgv-checkout-section { margin-bottom: 36px; }
.sdgv-personalise-section,
.sdgv-envelope-panel {
  position: relative;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid rgba(195,198,207,0.26);
  border-radius: 22px;
  background: rgba(255,255,255,0.5);
  box-shadow: 0 20px 60px rgba(0,29,54,0.055);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.sdgv-envelope-panel {
  margin-top: 20px;
  background: linear-gradient(145deg, rgba(255,255,255,0.62), rgba(248,249,255,0.42));
}
.sdgv-panel-intro {
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(195,198,207,0.2);
}
.sdgv-panel-kicker {
  margin-bottom: 6px;
  font-family: var(--vora-sans);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vora-outline);
}
.sdgv-panel-intro h3 {
  margin: 0 0 6px;
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 400;
  color: var(--vora-on-surface);
}
.sdgv-panel-intro p {
  max-width: 560px;
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
  color: var(--vora-secondary);
}
.sdgv-envelope-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 18px;
  margin-bottom: 14px;
}
.sdgv-section-title { font-family: var(--vora-serif); font-style: italic; font-size: 22px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(195,198,207,0.2); }
.sdgv-back-link { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vora-secondary); display: inline-block; margin-bottom: 12px; transition: color var(--vora-transition); }
.sdgv-back-link:hover { color: var(--vora-tertiary); }

/* Form fields */
.sdgv-field { margin-bottom: 18px; }
.sdgv-field label, .sdgv-field > label {
  display: block; font-size: 10px;
  text-transform: uppercase; letter-spacing: 0.15em;
  color: var(--vora-outline); margin-bottom: 8px; font-weight: 600;
}
.sdgv-form-row { display: flex; gap: 14px; flex-wrap: wrap; }
.sdgv-form-row .sdgv-field { flex: 1; min-width: 0; }
.sdgv-select, .sdgv-input, .sdgv-textarea {
  font-family: var(--vora-sans); font-size: 14px;
  color: var(--vora-on-surface); border: 1px solid rgba(195,198,207,0.3);
  border-radius: 9999px; background: rgba(255,255,255,0.74);
  outline: none; line-height: 1.4; transition: border-color var(--vora-transition);
}
/* Textarea can't be fully pill — use a generous soft radius instead */
.sdgv-textarea {
  border-radius: 20px !important;
}
.sdgv-select { padding: 12px 36px 12px 20px; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2373777f' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-color: var(--vora-surf-lowest); cursor: pointer; }
.sdgv-input { padding: 12px 20px; width: 100%; display: block; }
.sdgv-input--large { font-size: 18px; padding: 18px 24px; letter-spacing: 0.08em; border-radius: var(--vora-radius-full); }
.sdgv-textarea { padding: 14px 20px; width: 100%; display: block; resize: vertical; min-height: 100px; border-radius: var(--vora-radius); }
.sdgv-select:focus, .sdgv-input:focus, .sdgv-textarea:focus { border-color: var(--vora-tertiary); box-shadow: 0 0 0 3px rgba(184,135,42,0.1); }
.sdgv-hint { font-size: 11px; color: var(--vora-outline); margin-top: 5px; display: block; }
.sdgv-optional { font-size: 10px; color: var(--vora-outline); text-transform: uppercase; letter-spacing: 0.1em; }

/* Voucher type selection */
.sdgv-voucher-type-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 16px; }
@media (max-width: 640px) { .sdgv-voucher-type-grid { grid-template-columns: 1fr; } }
.sdgv-type-card { position: relative; background: rgba(255,255,255,0.72); backdrop-filter: blur(12px); border: 1px solid rgba(195,198,207,0.34); border-radius: var(--vora-radius-full); padding: 22px 28px; cursor: pointer; transition: all var(--vora-transition); text-align: center; }
.sdgv-type-card:hover, .sdgv-type-card:focus-within { border-color: rgba(115,92,0,0.42); background: rgba(255,255,255,0.9); }
.sdgv-type-card--active { background: #fff; border-color: var(--vora-tertiary); box-shadow: inset 0 0 0 1px var(--vora-tertiary), 0 14px 34px rgba(0,29,54,0.055); }
.sdgv-type-card__icon, .sdgv-type-card__desc, .sdgv-type-card__price, .sdgv-type-premium { display: none !important; }
.sdgv-type-card__label { font-size: 13px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vora-on-surface); margin: 0; line-height: 1.35; }
.sdgv-type-card__details { display: none !important; }
.sdgv-type-card:hover .sdgv-type-card__details, .sdgv-type-card:focus-within .sdgv-type-card__details { display: none !important; }
.sdgv-type-card__details ul { margin:0; padding:16px 18px 10px 34px; }
.sdgv-type-card__details li { font-size:12px; line-height:1.55; color:var(--vora-secondary); margin:0 0 6px; }
.sdgv-type-card__details strong { display:block; padding:0 18px 16px 34px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--vora-tertiary); }
.sdgv-type-card__price { font-size: 11px; font-weight: 700; color: var(--vora-tertiary); }
.sdgv-type-premium { font-size: 9px; background: var(--vora-tert-fixed); color: var(--vora-tertiary); padding: 2px 7px; border-radius: var(--vora-radius-full); margin-left: 4px; font-weight: 700; letter-spacing: 0.1em; }
.sdgv-print-note { display: flex; gap: 10px; padding: 14px 18px; background: rgba(255,255,255,0.48); border: 1px solid rgba(195,198,207,0.18); border-radius: 999px; font-size: 12px; color: var(--vora-secondary); margin-top: 18px; line-height: 1.5; }

/* Gateway */
.sdgv-gateway-options { display: flex; gap: 8px; flex-wrap: wrap; }
.sdgv-gateway-btn { flex: 1; min-width: 100px; padding: 14px 12px; text-align: center; background: rgba(255,255,255,0.5); border: 1px solid rgba(195,198,207,0.3); border-radius: var(--vora-radius); font-size: 13px; color: var(--vora-secondary); cursor: pointer; transition: all var(--vora-transition); font-family: var(--vora-sans); }
.sdgv-gateway-btn.is-active { border-color: var(--vora-on-surface); background: rgba(255,255,255,0.9); color: var(--vora-on-surface); box-shadow: 0 0 0 1px var(--vora-on-surface); }
.sdgv-gateway-btn__name { font-weight: 700; display: block; font-size: 13px; margin-bottom: 2px; }
.sdgv-gateway-btn__sub  { font-size: 11px; opacity: 0.7; }
#sdgv-card-element { padding: 14px 20px; background: var(--vora-surf-lowest); border: 1px solid rgba(195,198,207,0.3); border-radius: var(--vora-radius-full); }

/* Discount */
.sdgv-discount-row { display: flex; gap: 8px; align-items: flex-end; }
.sdgv-discount-row .sdgv-input { flex: 1; }
.sdgv-discount-msg { font-size: 12px; margin-top: 8px; padding: 10px 16px; border-radius: var(--vora-radius-full); }
.sdgv-discount-msg--error { background: var(--vora-danger-l); color: var(--vora-error); }
.sdgv-discount-applied { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; background: var(--sdgv-success-l); border-radius: var(--vora-radius-full); }
.sdgv-discount-label { font-size: 13px; font-weight: 600; color: var(--sdgv-success); }
.sdgv-summary-discount { display: flex; justify-content: space-between; font-size: 13px; padding: 8px 0; border-bottom: 1px solid rgba(195,198,207,0.15); color: var(--vora-secondary); }

/* Stripe */
.sdgv-stripe-field { display: none; margin-top: 14px; animation: sdgv-fade-in 0.2s ease; }
.sdgv-bacs-field   { display: none; margin-top: 14px; animation: sdgv-fade-in 0.2s ease; }
.sdgv-bacs-details { font-size: 13px; color: var(--vora-secondary); line-height: 1.7; padding: 16px 20px; background: var(--vora-surf-low); border-radius: var(--vora-radius); }
.sdgv-bacs-details p { margin: 0; }

/* Quantity */
.sdgv-qty { display: flex; align-items: center; gap: 8px; }
.sdgv-qty__btn { width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(195,198,207,0.4); background: none; color: var(--vora-on-surface); font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--vora-transition); }
.sdgv-qty__btn:hover { background: var(--vora-on-surface); color: #fff; border-color: var(--vora-on-surface); }
.sdgv-qty__input { width: 40px; text-align: center; border: none; background: none; font-size: 14px; font-weight: 600; color: var(--vora-on-surface); }

/* Envelope fields */
.sdgv-env-drop {
  min-height: 122px;
  border: 1px dashed rgba(0,29,54,0.28);
  border-radius: 16px;
  padding: 22px 18px;
  text-align: center;
  cursor: pointer;
  background: rgba(255,255,255,0.54);
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sdgv-env-drop:hover {
  border-color: var(--vora-tertiary);
  background: rgba(255,255,255,0.78);
  box-shadow: 0 10px 28px rgba(0,29,54,0.06);
}
.sdgv-env-drop__text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: var(--vora-secondary);
  font-size: 13px;
}
.sdgv-env-drop__text strong {
  color: var(--vora-on-surface);
  font-size: 13px;
  letter-spacing: 0.02em;
}
.sdgv-env-drop__text span {
  font-size: 12px;
  color: var(--vora-outline);
}
.sdgv-envelope-preview-strip { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--vora-surf-low); border-radius: var(--vora-radius); font-size: 13px; color: var(--vora-secondary); }
.sdgv-envelope-preview-icon { font-size: 20px; }

/* ── CONFIRMATION PAGE ──────────────────────────────────────── */
.sdgv-wrap--confirmation { max-width: 640px; margin: 0 auto; padding: 80px 32px; }
.sdgv-confirmation { text-align: center; }
.sdgv-confirmation__icon { font-size: 48px; margin-bottom: 20px; }
.sdgv-confirmation__title { font-family: var(--vora-serif); font-style: italic; font-size: 44px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 12px; letter-spacing: -0.02em; }
.sdgv-confirmation__sub { font-size: 14px; color: var(--vora-secondary); margin-bottom: 40px; line-height: 1.6; }
.sdgv-confirmation__card { background: rgba(255,255,255,0.7); backdrop-filter: blur(20px); border-radius: var(--vora-radius-xl); padding: 28px; margin-bottom: 16px; text-align: left; box-shadow: var(--vora-shadow); }
.sdgv-confirmation__order { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vora-outline); margin-bottom: 6px; }
.sdgv-confirmation__voucher { font-family: var(--vora-serif); font-style: italic; font-size: 22px; color: var(--vora-on-surface); margin-bottom: 16px; }
.sdgv-confirmation__code-box { text-align: center; border: 1px dashed rgba(115,92,0,0.4); border-radius: var(--vora-radius); padding: 18px; margin: 12px 0; background: rgba(255,224,136,0.1); }
.sdgv-confirmation__code-label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vora-outline); margin-bottom: 8px; }
.sdgv-confirmation__code { font-family: 'Courier New', monospace; font-size: 22px; font-weight: 700; letter-spacing: 4px; color: var(--vora-tertiary); }
.sdgv-confirmation__sent { font-size: 13px; color: var(--vora-secondary); margin-top: 10px; }
.sdgv-scheduled-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 18px; background: rgba(255,224,136,0.2); color: var(--vora-tertiary); border-radius: var(--vora-radius-full); font-size: 12px; font-weight: 600; margin-bottom: 24px; }
.sdgv-thankyou-code { background: rgba(255,255,255,0.5); border-radius: var(--vora-radius-xl); padding: 28px; margin-top: 24px; text-align: center; }
.sdgv-thankyou-code__eyebrow { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vora-outline); margin-bottom: 8px; }
.sdgv-thankyou-code__headline { font-family: var(--vora-serif); font-style: italic; font-size: 22px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 16px; }
.sdgv-thankyou-code__box { display: inline-block; padding: 14px 28px; margin-bottom: 12px; border-radius: var(--vora-radius); border: 1px dashed rgba(115,92,0,0.4); }
.sdgv-thankyou-code__label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vora-outline); margin-bottom: 6px; }
.sdgv-thankyou-code__value { font-family: 'Courier New', monospace; font-size: 20px; font-weight: 700; letter-spacing: 3px; color: var(--vora-tertiary); }
.sdgv-thankyou-code__desc { font-size: 13px; color: var(--vora-secondary); line-height: 1.6; }

/* ── REDEMPTION PAGE (legacy, superseded) ─────────────────────
   templates/single/redemption.php was rebuilt (see the "2.16.16" block
   near the top of this file) around a different DOM (.sdgv-voucher-state,
   .sdgv-mobile-balance-*, .sdgv-check-header, .sdgv-booking-fields) that
   has no .sdgv-ledger / .sdgv-redemption-result elements at all. Every
   selector below that also appears in the 2.16.16 block (.sdgv-redeem-wrap,
   .sdgv-redeem__right, .sdgv-redeem__code-input, .sdgv-btn--balance, ...) is
   already fully overridden by it there via .sdgv-wrap-prefixed selectors of
   higher specificity, regardless of source order — so this block currently
   has no visible effect on that page. Left in place rather than deleted
   since it isn't hurting anything and removing dead CSS blind is its own
   risk; do not "fix" this page's desktop/mobile layout here — edit the
   2.16.16 block instead. ── */
.sdgv-redeem-wrap {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 32px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px 80px;
}
@media (max-width: 860px) {
  .sdgv-redeem-wrap {
    grid-template-columns: 1fr;
    padding: 0 20px 60px;
  }
  /* On mobile: hide the left ledger panel entirely — it replicates the form's results.
     Only the right-hand code input form is shown. The ledger balance still updates
     inside the form via JS when Check Balance is tapped. */
  .sdgv-redeem-wrap .sdgv-ledger {
    display: none !important;
  }
  .sdgv-redeem__right {
    width: 100%;
  }
}

/* Left ledger column */
.sdgv-ledger {
  background: var(--vora-surf-low);
  border-radius: var(--vora-radius-lg);
  padding: 32px;
  position: sticky;
  top: 120px;
}
.sdgv-ledger__header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 24px; border-bottom: 1px solid rgba(195,198,207,0.15); margin-bottom: 28px; }
.sdgv-ledger__eyebrow { font-size: 10px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--vora-outline); margin-bottom: 4px; display: block; }
.sdgv-ledger__title { font-family: var(--vora-sans); font-size: 28px; font-weight: 300; color: var(--vora-on-surface); }
.sdgv-ledger__icon { color: var(--vora-tertiary); font-size: 24px; }
.sdgv-ledger__rows { display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; }
.sdgv-ledger__row { display: flex; justify-content: space-between; align-items: flex-start; font-size: 13px; }
.sdgv-ledger__row-label { color: var(--vora-secondary); font-weight: 500; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; }
.sdgv-ledger__row-sub { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--vora-outline); margin-top: 2px; }
.sdgv-ledger__row-val { font-weight: 600; color: var(--vora-on-surface); font-size: 14px; }
.sdgv-ledger__row-val--debit { color: var(--vora-error); }
.sdgv-ledger__row-val--muted { color: var(--vora-outline); }
.sdgv-ledger__balance { padding-top: 20px; border-top: 1px solid rgba(195,198,207,0.15); margin-bottom: 24px; }
.sdgv-ledger__balance-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--vora-outline); margin-bottom: 8px; display: block; }
.sdgv-ledger__balance-amount { font-family: var(--vora-sans); font-size: 36px; font-weight: 700; color: var(--vora-tertiary); line-height: 1; }
.sdgv-ledger__balance-amount--pending { color: var(--vora-outline); font-size: 20px; font-weight: 400; }
.sdgv-ledger__redeem-btn {
  width: 100%; background: var(--sdgv-btn-bg, var(--vora-on-surface)); color: var(--sdgv-btn-text, #fff);
  border-radius: var(--vora-radius-full); padding: 16px;
  border: none; font-family: var(--vora-sans); font-size: 11px;
  font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  cursor: pointer; transition: all var(--vora-transition); margin-bottom: 12px;
}
.sdgv-ledger__redeem-btn:hover:not(:disabled) { background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-tertiary))); color: var(--sdgv-hover-text, var(--sdgv-btn-text, #fff)); }
.sdgv-ledger__redeem-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.sdgv-ledger__redeem-btn.is-loading::after { content: ''; width: 13px; height: 13px; border: 2px solid rgba(255,255,255,0.5); border-top-color: #fff; border-radius: 50%; animation: sdgv-spin 0.6s linear infinite; display: inline-block; margin-left: 8px; }
.sdgv-ledger__security { text-align: center; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vora-outline); }
/* Ledger decorative image */
.sdgv-ledger__image { border-radius: var(--vora-radius-lg); overflow: hidden; aspect-ratio: 4/3; margin-top: 24px; position: relative; }
.sdgv-ledger__image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--vora-transition-slow); }
.sdgv-ledger__image:hover img { transform: scale(1.05); }
.sdgv-ledger__image-caption {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,29,54,0.8) 0%, transparent 50%);
  display: flex; align-items: flex-end; padding: 24px;
}
.sdgv-ledger__image-caption p { font-family: var(--vora-serif); font-style: italic; color: #fff; font-size: 20px; }

/* Right form column */
.sdgv-redeem__right {
  background: var(--vora-glass-strong);
  backdrop-filter: var(--vora-glass-strong-blur);
  -webkit-backdrop-filter: var(--vora-glass-strong-blur);
  border-top: 0.5px solid rgba(255,255,255,0.4);
  border-radius: var(--vora-radius-lg);
  padding: 48px;
  box-shadow: var(--vora-shadow-lg);
}
@media (max-width: 640px) { .sdgv-redeem__right { padding: 28px; } }
.sdgv-redeem__form-title { font-family: var(--vora-serif); font-style: italic; font-size: 32px; color: var(--vora-on-surface); margin-bottom: 8px; }
.sdgv-redeem__form-sub { font-size: 13px; color: rgba(92,95,97,0.7); margin-bottom: 40px; line-height: 1.6; }
.sdgv-redeem__input-label {
  display: block; font-size: 10px; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--vora-outline); margin-bottom: 10px; margin-left: 16px;
}
.sdgv-redeem__code-input {
  width: 100%; font-size: 16px; padding: 16px 24px;
  border-radius: var(--vora-radius-full);
  background: var(--vora-surf-lowest);
  border: 1px solid rgba(195,198,207,0.3);
  color: var(--vora-on-surface); outline: none;
  letter-spacing: 0.08em; text-transform: uppercase;
  transition: border-color var(--vora-transition); margin-bottom: 24px; display: block;
  font-family: var(--vora-sans);
}
.sdgv-redeem__code-input::placeholder { opacity: 0.3; text-transform: none; }
.sdgv-redeem__code-input:focus { border-color: var(--vora-tertiary); }
.sdgv-redeem__btn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
@media (max-width: 480px) { .sdgv-redeem__btn-row { grid-template-columns: 1fr; } }
.sdgv-btn--balance {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--sdgv-btn-bg, var(--vora-on-surface)); color: var(--sdgv-btn-text, #fff);
  border: none; border-radius: var(--vora-radius-full);
  padding: 18px 20px; font-family: var(--vora-sans); font-size: 11px;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  cursor: pointer; transition: all var(--vora-transition);
  box-shadow: 0 8px 24px rgba(0,29,54,0.12); white-space: nowrap;
}
.sdgv-btn--balance:hover { background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-tertiary))); color: var(--sdgv-hover-text, var(--sdgv-btn-text, #fff)); transform: translateY(-1px); }
.sdgv-btn--balance.is-loading::after { content: ''; width: 13px; height: 13px; border: 2px solid rgba(255,255,255,0.5); border-top-color: #fff; border-radius: 50%; animation: sdgv-spin 0.6s linear infinite; display: inline-block; margin-left: 8px; }
.sdgv-btn--redeem {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--vora-glass-strong);
  backdrop-filter: var(--vora-glass-strong-blur);
  -webkit-backdrop-filter: var(--vora-glass-strong-blur);
  color: var(--vora-on-surface);
  border: 1px solid rgba(195,198,207,0.3);
  border-radius: var(--vora-radius-full);
  padding: 18px 20px; font-family: var(--vora-sans); font-size: 11px;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  cursor: pointer; transition: all var(--vora-transition);
  box-shadow: 0 8px 24px rgba(0,29,54,0.05); white-space: nowrap;
}
.sdgv-btn--redeem:hover:not(:disabled) { background: rgba(255,255,255,0.4); }
.sdgv-btn--redeem:disabled { opacity: 0.35; cursor: not-allowed; }
.sdgv-btn--redeem.is-loading::after { content: ''; width: 13px; height: 13px; border: 2px solid rgba(0,29,54,0.3); border-top-color: var(--vora-on-surface); border-radius: 50%; animation: sdgv-spin 0.6s linear infinite; display: inline-block; margin-left: 8px; }
.sdgv-redeem__disclaimer { font-size: 10px; color: rgba(92,95,97,0.5); letter-spacing: 0.1em; text-transform: uppercase; font-style: italic; margin-bottom: 40px; }
/* Redeem info cards */
.sdgv-redeem__trust { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 32px; border-top: 1px solid rgba(195,198,207,0.15); }
@media (max-width: 480px) { .sdgv-redeem__trust { grid-template-columns: 1fr; } }
.sdgv-redeem__trust-item { display: flex; gap: 12px; }
.sdgv-redeem__trust-icon { font-size: 22px; color: rgba(92,95,97,0.4); flex-shrink: 0; line-height: 1.4; }
.sdgv-redeem__trust-title { font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vora-on-surface); margin-bottom: 4px; }
.sdgv-redeem__trust-text { font-size: 11px; line-height: 1.6; color: rgba(92,95,97,0.6); }
/* Redemption result */
.sdgv-redemption-result { margin-top: 24px; border-radius: var(--vora-radius-lg); padding: 28px; animation: sdgv-fade-in 0.3s ease; box-shadow: var(--vora-shadow); }
.sdgv-redemption-result--valid { background: rgba(255,255,255,0.8); }
.sdgv-redemption-result--invalid { background: var(--vora-danger-l); }
.sdgv-redemption-result__status { font-size: 10px; text-transform: uppercase; letter-spacing: 0.2em; font-weight: 700; margin-bottom: 8px; color: var(--vora-outline); }
.sdgv-redemption-result--valid .sdgv-redemption-result__status { color: var(--sdgv-success); }
.sdgv-redemption-result--invalid .sdgv-redemption-result__status { color: var(--vora-error); }
.sdgv-redemption-result__title { font-family: var(--vora-serif); font-style: italic; font-size: 26px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 18px; }
.sdgv-redemption-result__row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid rgba(195,198,207,0.15); font-size: 14px; }
.sdgv-redemption-result__row:last-child { border-bottom: none; }
.sdgv-redemption-result__row span:first-child { color: var(--vora-secondary); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; }
.sdgv-redemption-result__row span:last-child { font-weight: 600; color: var(--vora-on-surface); }
.sdgv-redemption-info { margin-top: 24px; padding: 20px 24px; background: var(--vora-surf-low); border-radius: var(--vora-radius-lg); font-size: 13px; color: var(--vora-secondary); line-height: 1.7; }
.sdgv-redeem-success { background: rgba(255,255,255,0.8); border-radius: var(--vora-radius-xl); padding: 36px; text-align: center; animation: sdgv-fade-in 0.4s ease; }
.sdgv-redeem-success__icon { font-size: 44px; margin-bottom: 14px; }
.sdgv-redeem-success__title { font-family: var(--vora-serif); font-style: italic; font-size: 28px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 8px; }
.sdgv-redeem-success__sub { font-size: 13px; color: var(--vora-secondary); line-height: 1.6; margin-bottom: 20px; }
.sdgv-redeem-success__amount { font-family: var(--vora-serif); font-style: italic; font-size: 44px; font-weight: 400; color: var(--vora-tertiary); margin-bottom: 20px; }

/* ── BALANCE CHECK PAGE ─────────────────────────────────────── */
.sdgv-balance-history { margin-top: 12px; }
.sdgv-balance-history h4 { font-size: 10px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--vora-outline); font-weight: 600; margin-bottom: 8px; margin-top: 16px; }

/* ── BULK / LOYALTY (kept for admin usage, hidden from frontend) */
.sdgv-bulk-tiers { display: flex; gap: 10px; margin-bottom: 24px; flex-wrap: wrap; }
.sdgv-bulk-tier { flex: 1; min-width: 70px; background: rgba(255,255,255,0.6); border-radius: var(--vora-radius); padding: 16px 10px; text-align: center; transition: all var(--vora-transition); box-shadow: var(--sdgv-shadow-sm); }
.sdgv-bulk-tier:hover { transform: translateY(-2px); box-shadow: var(--vora-shadow); }
.sdgv-bulk-tier__qty { font-family: var(--vora-serif); font-style: italic; font-size: 22px; font-weight: 400; color: var(--vora-on-surface); margin-bottom: 4px; }
.sdgv-bulk-tier__disc { font-size: 11px; font-weight: 700; color: var(--sdgv-success); text-transform: uppercase; letter-spacing: 0.1em; }
.sdgv-bulk-form { margin-bottom: 20px; }
.sdgv-bulk-step { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid rgba(195,198,207,0.15); }
.sdgv-bulk-step:last-child { border-bottom: none; }
.sdgv-bulk-step__num { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--vora-on-surface); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.sdgv-bulk-step__body { flex: 1; }
.sdgv-bulk-step__body h3 { font-family: var(--vora-serif); font-style: italic; font-size: 18px; font-weight: 400; margin-bottom: 10px; color: var(--vora-on-surface); }
.sdgv-bulk-pricing-summary { background: var(--vora-surf-low); border-radius: var(--vora-radius); padding: 18px; height: 100%; display: flex; flex-direction: column; justify-content: center; }
.sdgv-bulk-pricing__label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--vora-outline); margin-bottom: 8px; }
.sdgv-bulk-pricing__total { font-family: var(--vora-serif); font-style: italic; font-size: 28px; font-weight: 400; color: var(--vora-on-surface); }
.sdgv-bulk-pricing__saving { font-size: 12px; font-weight: 600; color: var(--sdgv-success); margin-top: 4px; }
.sdgv-csv-drop { border: 1px dashed rgba(195,198,207,0.5); border-radius: var(--vora-radius-lg); padding: 36px 20px; text-align: center; cursor: pointer; transition: all var(--vora-transition); background: var(--vora-surf-low); }
.sdgv-csv-drop:hover, .sdgv-csv-drop.dragover { border-color: var(--vora-tertiary); background: rgba(255,224,136,0.05); }
.sdgv-csv-drop__icon { font-size: 30px; margin-bottom: 10px; }
.sdgv-csv-drop__label { font-size: 14px; font-weight: 600; color: var(--vora-on-surface); margin-bottom: 4px; }
.sdgv-csv-drop__hint { font-size: 12px; color: var(--vora-secondary); }
.sdgv-csv-preview { margin-top: 12px; background: rgba(255,255,255,0.7); border-radius: var(--vora-radius); overflow: hidden; }
.sdgv-csv-preview-row { display: flex; border-bottom: 1px solid rgba(195,198,207,0.15); font-size: 13px; }
.sdgv-csv-preview-row:last-child { border-bottom: none; }
.sdgv-csv-preview-row span { flex: 1; padding: 8px 12px; border-right: 1px solid rgba(195,198,207,0.12); }
.sdgv-csv-preview-row span:last-child { border-right: none; }
.sdgv-csv-preview-row.header { background: var(--vora-surf-low); font-weight: 600; font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--vora-outline); }
.sdgv-csv-count { font-size: 12px; color: var(--vora-secondary); padding: 8px 12px; background: var(--vora-surf-low); }
.sdgv-bulk-actions { padding-top: 20px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 760px) {
  .sdgv-basket-layout, .sdgv-checkout-layout { flex-direction: column; }
  .sdgv-basket-summary, .sdgv-basket__sidebar, .sdgv-checkout-sidebar { width: 100%; }
  .sdgv-wrap--checkout, .sdgv-wrap--page, .sdgv-wrap--confirmation { padding-left: 20px; padding-right: 20px; }
  .sdgv-util-bar { padding: 0 16px; }
  .sdgv-grid { padding-left: 16px; padding-right: 16px; }
  .sdgv-footer { padding: 28px 20px; }
}

/* ============================================================
   v1.6 PATCHES — Mobile-optimized, full-width, button fixes
   ============================================================ */

/* ── 1. Full-width layout: remove page-level max-width constraints ── */
/* .sdgv-wrap--checkout width/padding consolidated — see v2.9.5.22 section below + sdgv-premium.css */

.sdgv-wrap--page { padding: 60px 20px; max-width: 100%; }
@media (min-width: 768px) { .sdgv-wrap--page { padding: 60px 48px; } }

/* ── 2. Header: full-width style ───────────────────────────── */
.sdgv-header--full {
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  border-radius: 0 !important;
  transform: none !important;
  max-width: 100% !important;
  height: 70px !important;
  padding: 0 24px !important;
}
@media (min-width: 768px) { .sdgv-header--full { padding: 0 48px !important; height: 72px !important; } }

/* ── 3. Mobile: floating pill scales correctly ──────────────── */
@media (max-width: 639px) {
  .sdgv-header {
    width: 94% !important;
    top: 12px !important;
    padding: 0 18px !important;
    height: 56px !important;
  }
  .sdgv-nav-offset { padding-top: 88px !important; }
  .sdgv-header__nav { display: none !important; } /* hidden on mobile – use drawer */
}

/* ── 4. Global page offset for full-width header ────────────── */
.sdgv-nav-offset--full { padding-top: 70px; }
@media (min-width: 768px) { .sdgv-nav-offset--full { padding-top: 72px; } }

/* ── 5. Storefront: edge-to-edge with safe-zone gutters ─────── */
.sdgv-cinematic-hero { padding: 60px 20px 48px; }
@media (min-width: 768px) { .sdgv-cinematic-hero { padding: 80px 48px 60px; } }

.sdgv-util-bar { padding: 0 16px; }
@media (min-width: 768px) { .sdgv-util-bar { padding: 0 48px; } }

.sdgv-grid { padding: 0 16px 60px; gap: 20px; }
@media (min-width: 640px) { .sdgv-grid { padding: 0 24px 60px; gap: 24px; } }
@media (min-width: 960px) { .sdgv-grid { padding: 0 48px 80px; gap: 32px; } }

/* ── 6. Checkout button: white bold text, always visible ─────── */
.sdgv-btn--primary {
  background: var(--sdgv-btn-bg, var(--vora-on-surface)) !important;
  color: var(--sdgv-btn-text, #ffffff) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.15em !important;
  -webkit-font-smoothing: antialiased;
  min-height: 52px;
  padding: 16px 28px !important;
}
.sdgv-btn--primary:hover {
  background: var(--sdgv-hover-bg, var(--vora-on-surface)) !important;
  color: var(--sdgv-hover-text, #ffffff) !important;
  transform: translateY(-1px);
}
/* Ensure text is never hidden by backdrop filter on ios */
.sdgv-btn--primary span,
.sdgv-btn--primary strong { color: inherit; }

/* ── 7. Basket: proceed-to-checkout button ──────────────────── */
.sdgv-basket-summary .sdgv-btn--primary,
.sdgv-basket-summary a.sdgv-btn--primary {
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase;
  min-height: 52px;
  border-radius: 9999px !important;
}

/* ── 8. Mobile touch targets — minimum 44px ─────────────────── */
.sdgv-btn { min-height: 44px; }
.sdgv-qty__btn { min-width: 44px; min-height: 44px; }
.sdgv-basket-icon { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
.sdgv-header__actions a, .sdgv-header__actions button { min-width: 44px; min-height: 44px; }

/* ── 9. Basket count: numeric badge on icon ─────────────────── */
.sdgv-basket-count {
  position: absolute;
  top: -2px; right: -4px;
  background: var(--vora-on-surface);
  color: #fff;
  font-family: var(--vora-sans);
  font-size: 10px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border: 2px solid rgba(255,255,255,0.8);
}
.sdgv-basket-icon { position: relative; }

/* ── 10. Voucher card: quantity overlay badge ───────────────── */
.sdgv-card__qty-badge {
  position: absolute;
  top: 12px; right: 12px;
  background: var(--vora-on-surface);
  color: #fff;
  font-family: var(--vora-sans);
  font-size: 11px; font-weight: 700;
  border-radius: 9999px;
  padding: 3px 10px;
  display: none;
  align-items: center;
  gap: 4px;
  z-index: 3;
  pointer-events: none;
}
.sdgv-card__qty-badge.is-visible { display: flex; }
.sdgv-card__qty-badge svg { width: 12px; height: 12px; }

/* ── 11. Checkout: voucher type cards — mobile stack ────────── */
.sdgv-voucher-type-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
@media (min-width: 500px) { .sdgv-voucher-type-grid { grid-template-columns: repeat(3, 1fr); } }

.sdgv-type-card {
  border: 1px solid rgba(195,198,207,0.3);
  border-radius: var(--vora-radius-lg);
  padding: 20px 16px;
  cursor: pointer;
  transition: all var(--vora-transition);
  background: rgba(255,255,255,0.5);
}
.sdgv-btn--pay {
  background: var(--sdgv-btn-bg, var(--vora-on-surface)) !important;
  color: var(--sdgv-btn-text, #ffffff) !important;
}
.sdgv-btn--pay:hover:not(:disabled) {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))) !important;
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)) !important;
}

/* ── 12. Checkout layout: responsive sidebar ────────────────── */
.sdgv-checkout-layout { display: flex; gap: 32px; flex-wrap: wrap; align-items: flex-start; }
.sdgv-checkout-form   { flex: 1 1 320px; min-width: 0; }
.sdgv-checkout-sidebar { flex: 0 0 100%; order: -1; }
@media (min-width: 900px) {
  .sdgv-checkout-sidebar { flex: 0 0 320px; order: 0; position: sticky; top: 100px; }
}

/* ── 13. Body font setting (applied via inline CSS on wrap) ──── */
.sdgv-wrap { font-family: var(--sdgv-body-font, var(--vora-sans)); }

/* ── 14. Voucher card shape — CSS custom property ───────────── */
.sdgv-card { border-radius: var(--sdgv-card-radius, var(--vora-radius-lg)); }
.sdgv-card__image-link { border-radius: var(--sdgv-card-radius, var(--vora-radius-lg)) var(--sdgv-card-radius, var(--vora-radius-lg)) 0 0; }

/* ── 15. Portal template cards: selection state ─────────────── */
.sp-tpl-card {
  cursor: pointer;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.2s ease;
  position: relative;
}
.sp-tpl-card:hover { border-color: var(--sp-accent); }
.sp-tpl-card.is-selected { border-color: var(--sp-accent); }
.sp-tpl-card__checkmark {
  display: none;
  position: absolute;
  top: 8px; right: 8px;
  width: 22px; height: 22px;
  background: var(--sp-accent);
  border-radius: 50%;
  align-items: center; justify-content: center;
  font-size: 12px; color: #fff;
}
.sp-tpl-card.is-selected .sp-tpl-card__checkmark { display: flex; }

/* ── 16. Mobile bottom safe-area padding ────────────────────── */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .sdgv-footer, .sdgv-section-alt { padding-bottom: calc(40px + env(safe-area-inset-bottom)); }
}

/* ── 17. Keep public layouts intrinsically sized at narrow widths ── */
.sdgv-wrap,
.sdgv-wrap main,
.sdgv-wrap section,
.sdgv-wrap form,
.sdgv-wrap fieldset { min-width: 0; max-width: 100%; }
.sdgv-wrap input,
.sdgv-wrap select,
.sdgv-wrap textarea,
.sdgv-wrap button { max-width: 100%; }

.sdgv-route-state {
  width: min(760px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(56px, 9vw, 104px) 0;
  text-align: center;
}
.sdgv-route-state .sdgv-page-subtitle { margin-right: auto; margin-left: auto; }
.sdgv-route-feedback {
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: var(--vora-radius, 10px);
  background: var(--vora-surface, #fff);
  color: var(--vora-on-surface, #001d36);
  line-height: 1.5;
}
.sdgv-route-feedback--loading { border-color: var(--vora-accent, #b8872a); }
.sdgv-route-feedback--success { border-color: var(--sdgv-success, #2d6a4f); }
.sdgv-route-feedback--error { border-color: var(--sdgv-danger, #b3261e); }

/* ============================================================
   SINGLE VOUCHER PAGE — sdgv-sv__* components
   ============================================================ */

/* ── Reset inside single page ──────────────────────────────── */
.sdgv-single-voucher { font-family: var(--vora-sans); color: #1A1A1A; background: #FAF9F6; }
.sdgv-single-voucher *, .sdgv-single-voucher *::before, .sdgv-single-voucher *::after { box-sizing: border-box; }
.sdgv-single-voucher a { text-decoration: none; color: inherit; }
.sdgv-single-voucher img { display: block; max-width: 100%; }

/* ── Hero ─────────────────────────────────────────────────── */
.sdgv-sv__hero {
  max-width: 1536px; margin: 0 auto;
  padding: 48px 24px 64px; text-align: center;
}
@media (min-width: 768px) { .sdgv-sv__hero { padding: 64px 48px 80px; } }
@media (min-width: 1280px) { .sdgv-sv__hero { padding: 64px 80px 96px; } }

.sdgv-sv__eyebrow {
  display: block;
  font-family: var(--vora-sans);
  font-size: 11px; letter-spacing: 0.5em; text-transform: uppercase;
  color: #5c5f61; margin-bottom: 20px;
}
.sdgv-sv__title {
  font-family: var(--vora-serif); font-style: italic;
  font-size: clamp(40px, 7vw, 96px); font-weight: 400;
  color: #1A1A1A; line-height: 1.05; letter-spacing: -0.01em; margin: 0;
}

/* ── Hero image ───────────────────────────────────────────── */
.sdgv-sv__hero-image-wrap { max-width: 1536px; margin: 0 auto; padding: 0 24px 64px; }
@media (min-width: 768px) { .sdgv-sv__hero-image-wrap { padding: 0 48px 80px; } }
.sdgv-sv__hero-image {
  width: 100%; aspect-ratio: 21/9; overflow: hidden;
  border-radius: 4px; background: #e8e5e0;
}
/* Fallback for browsers without aspect-ratio */
@supports not (aspect-ratio: 21/9) { .sdgv-sv__hero-image { height: 420px; } }
.sdgv-sv__hero-img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(0.2); transform: scale(1.05);
  transition: filter 1s ease;
}
.sdgv-sv__hero-img:hover { filter: grayscale(0); }

/* ── Detail grid ─────────────────────────────────────────── */
.sdgv-sv__detail-section {
  max-width: 1280px; margin: 0 auto; padding: 0 24px 80px;
}
@media (min-width: 768px) { .sdgv-sv__detail-section { padding: 0 48px 80px; } }

.sdgv-sv__detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
}
@media (min-width: 768px) {
  .sdgv-sv__detail-grid { grid-template-columns: 5fr 4fr; gap: 40px; }
}
@media (min-width: 1100px) {
  .sdgv-sv__detail-grid { grid-template-columns: 5fr 4fr 3fr; }
}

/* Description */
.sdgv-sv__excerpt {
  font-size: 18px; line-height: 1.75; color: #4A4A4A;
  font-weight: 300; margin-bottom: 20px;
}
@media (min-width: 768px) { .sdgv-sv__excerpt { font-size: 20px; } }
.sdgv-sv__body { font-size: 15px; line-height: 1.8; color: #4A4A4A; }
.sdgv-sv__body p { margin-bottom: 16px; }
.sdgv-sv__service-detail {
  margin: 0 0 24px;
  padding: 20px 0;
  border-top: 1px solid #E5E5E5;
  border-bottom: 1px solid #E5E5E5;
}
.sdgv-sv__service-detail h2 {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: clamp(24px,3vw,34px);
  font-weight: 400;
  color: #001d36;
  margin: 6px 0 8px;
}
.sdgv-sv__service-detail p {
  color: #4A4A4A;
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 8px;
}
#sdgv-sv-service-meta {
  font-family: var(--vora-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #001d36;
}

/* Order controls */
.sdgv-sv__col-order {
  border-top: 1px solid #E5E5E5; padding-top: 32px;
}
.sdgv-sv__col-order.is-concierge-selection {
  border-color: rgba(0,29,54,.22);
}
.sdgv-sv__col-order.is-concierge-selection .sdgv-sv__select,
.sdgv-sv__col-order.is-concierge-selection .sdgv-sv__input {
  border-bottom-color: #001d36;
}
@media (min-width: 768px) {
  .sdgv-sv__col-order { border-top: none; border-left: 1px solid #E5E5E5; padding-top: 0; padding-left: 40px; }
}
@media (min-width: 1100px) { .sdgv-sv__col-order { padding-left: 56px; } }

.sdgv-sv__price-wrap { margin-bottom: 24px; }
.sdgv-sv__price-label {
  display: block; font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase; color: #4A4A4A; margin-bottom: 8px;
}
.sdgv-sv__price {
  font-family: var(--vora-serif); font-style: italic;
  font-size: clamp(28px, 4vw, 40px); color: #1A1A1A; display: block;
}
.sdgv-sv__field { margin-bottom: 16px; }
.sdgv-sv__field-label {
  display: block; font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.15em; text-transform: uppercase; color: #4A4A4A; margin-bottom: 8px;
}
.sdgv-sv__select {
  width: 100%; background: transparent;
  border: none; border-bottom: 1px solid #E5E5E5;
  padding: 14px 0; font-family: var(--vora-sans);
  font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase;
  appearance: none; outline: none; cursor: pointer; color: #1A1A1A; border-radius: 0;
}
.sdgv-sv__input {
  width: 100%; background: transparent;
  border: none; border-bottom: 1px solid #E5E5E5;
  padding: 14px 0; font-family: var(--vora-sans);
  font-size: 18px; outline: none; color: #1A1A1A; border-radius: 0;
}
.sdgv-sv__add-btn {
  width: 100%; background: #2D3436; color: #fff;
  border: none; padding: 20px 24px;
  font-family: var(--vora-sans); font-size: 11px;
  letter-spacing: 0.3em; text-transform: uppercase;
  cursor: pointer; transition: background 0.5s, opacity 0.3s;
  margin-top: 8px; margin-bottom: 20px; min-height: 60px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 0;
}
.sdgv-sv__add-btn:hover { background: #1a1a1a; }
.sdgv-sv__add-btn:disabled, .sdgv-sv__add-btn.is-loading { opacity: 0.5; pointer-events: none; }
.sdgv-sv__links { display: flex; flex-direction: column; gap: 0; }
.sdgv-sv__link {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--vora-sans); font-size: 11px; letter-spacing: 0.15em;
  text-transform: uppercase; color: #4A4A4A;
  padding: 14px 0; border-bottom: 1px solid #E5E5E5;
  transition: color 0.3s;
}
.sdgv-sv__link:hover { color: #1A1A1A; }

/* Process column */
.sdgv-sv__col-process {
  border-top: 1px solid #E5E5E5; padding-top: 32px;
}
@media (min-width: 1100px) { .sdgv-sv__col-process { border-top: none; padding-top: 0; padding-left: 32px; border-left: 1px solid #E5E5E5; } }

.sdgv-sv__process-title {
  font-family: var(--vora-serif); font-style: italic;
  font-size: 22px; color: #2D3436; margin-bottom: 28px;
}
.sdgv-sv__step { display: flex; gap: 16px; margin-bottom: 24px; }
.sdgv-sv__step:last-child { margin-bottom: 0; }
.sdgv-sv__step-num {
  font-family: var(--vora-sans); font-size: 11px;
  color: #A68911; flex-shrink: 0; padding-top: 2px; font-weight: 600;
}
.sdgv-sv__step-text { font-size: 14px; color: #4A4A4A; line-height: 1.7; margin: 0; }

/* ── Reviews ─────────────────────────────────────────────── */
.sdgv-sv__reviews-section {
  padding: 60px 24px; border-top: 1px solid #E5E5E5;
  background: rgba(255,255,255,0.4);
}
@media (min-width: 768px) { .sdgv-sv__reviews-section { padding: 80px 48px; } }
.sdgv-sv__reviews-header { text-align: center; margin-bottom: 48px; }
.sdgv-sv__reviews-title {
  font-family: var(--vora-serif); font-style: italic;
  font-size: clamp(32px, 4vw, 48px); color: #1A1A1A; margin-bottom: 8px;
}
.sdgv-sv__reviews-sub {
  font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.4em; text-transform: uppercase; color: #A68911;
}
.sdgv-sv__reviews-grid { max-width: 900px; margin: 0 auto; display: flex; gap: 40px; flex-wrap: wrap; }
.sdgv-sv__review { flex: 1 1 240px; text-align: center; }
.sdgv-sv__review-text { font-size: 16px; line-height: 1.75; color: #4A4A4A; font-style: italic; margin-bottom: 16px; }
.sdgv-sv__review-rating { color: #A68911; font-size: 18px; }

/* ── Delivery info ───────────────────────────────────────── */
.sdgv-sv__delivery-section {
  padding: 60px 24px; border-top: 1px solid #E5E5E5;
}
@media (min-width: 768px) { .sdgv-sv__delivery-section { padding: 80px 48px; } }
.sdgv-sv-animated-preview-frame iframe {
  display: block;
}
@media (max-width: 640px) {
  #sdgv-sv-delivery.sdgv-sv__delivery-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  #sdgv-sv-delivery > div {
    max-width: none !important;
    width: 100% !important;
  }
  .sdgv-sv-animated-preview-frame {
    width: 100vw !important;
    max-width: none !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .sdgv-sv-animated-preview-frame iframe {
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
}
.sdgv-sv__delivery-inner {
  max-width: 960px; margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start;
}
.sdgv-sv__delivery-icon { flex-shrink: 0; }
.sdgv-sv__envelope-mock {
  width: 160px; height: 200px;
  background: #fff; border: 1px solid #E5E5E5;
  border-radius: 2px; display: flex; align-items: center; justify-content: center;
  filter: grayscale(0.5); transition: filter 0.7s;
}
.sdgv-sv__envelope-mock:hover { filter: grayscale(0); }
@media (max-width: 600px) { .sdgv-sv__envelope-mock { width: 120px; height: 150px; } }
.sdgv-sv__delivery-body { flex: 1; min-width: 260px; }
.sdgv-sv__delivery-title {
  font-family: var(--vora-serif); font-style: italic;
  font-size: clamp(28px, 3vw, 40px); color: #1A1A1A;
  margin-bottom: 16px; line-height: 1.2;
}
.sdgv-sv__delivery-desc {
  font-size: 16px; line-height: 1.8; color: #4A4A4A;
  font-weight: 300; margin-bottom: 28px;
}
.sdgv-sv__delivery-meta {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
  margin-bottom: 20px;
}
.sdgv-sv__meta-label {
  font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase; color: #4A4A4A; margin-bottom: 4px;
}
.sdgv-sv__meta-val { font-size: 14px; font-weight: 500; color: #1A1A1A; }
.sdgv-sv__terms { font-size: 12px; color: #4A4A4A; line-height: 1.6; }

/* ── Related vouchers ────────────────────────────────────── */
.sdgv-sv__related-section {
  padding: 60px 24px; border-top: 1px solid #E5E5E5;
}
@media (min-width: 768px) { .sdgv-sv__related-section { padding: 80px 48px; } }
.sdgv-sv__related-header { text-align: center; margin-bottom: 48px; }
.sdgv-sv__related-title {
  font-family: var(--vora-serif); font-style: italic;
  font-size: clamp(36px, 4vw, 52px); color: #2D3436;
}
.sdgv-sv__related-grid {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 600px)  { .sdgv-sv__related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px)  { .sdgv-sv__related-grid { grid-template-columns: repeat(3, 1fr); gap: 40px; } }

.sdgv-sv__related-card { cursor: pointer; }
.sdgv-sv__related-img-wrap {
  position: relative; aspect-ratio: 3/4; overflow: hidden;
  border-radius: 8px; margin-bottom: 20px; background: #e8e5e0;
}
@supports not (aspect-ratio: 3/4) { .sdgv-sv__related-img-wrap { height: 320px; } }
.sdgv-sv__related-img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(1); transition: all 1s ease;
}
.sdgv-sv__related-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.05); transition: background 0.5s;
}
.sdgv-sv__related-card:hover .sdgv-sv__related-overlay { background: rgba(0,0,0,0); }
.sdgv-sv__related-add {
  position: absolute; bottom: 16px; right: 16px;
  width: 44px; height: 44px; background: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  font-size: 20px; color: #1A1A1A;
  transition: transform 0.3s;
}
.sdgv-sv__related-add:hover { transform: scale(1.1); }
.sdgv-sv__related-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #e8e5e0, #d0cdc8); }
.sdgv-sv__related-info { text-align: center; }
.sdgv-sv__related-name {
  font-family: var(--vora-serif); font-style: italic;
  font-size: 22px; color: #1A1A1A; margin-bottom: 8px;
}
.sdgv-sv__related-price {
  font-family: var(--vora-sans); font-size: 11px;
  letter-spacing: 0.15em; text-transform: uppercase; color: #4A4A4A; margin-bottom: 10px;
}
.sdgv-sv__related-link {
  font-family: var(--vora-sans); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase; color: #4A4A4A;
  border-bottom: 1px solid #E5E5E5; padding-bottom: 3px;
  display: inline-block; transition: color 0.3s, border-color 0.3s;
}
.sdgv-sv__related-link:hover { color: #1A1A1A; border-color: #1A1A1A; }

/* ── Suppress WordPress theme title/content on voucher singles ── */
.single-sdgv_voucher .entry-title,
.single-sdgv_voucher .page-title,
.single-sdgv_voucher .entry-header,
.single-sdgv_voucher .post-thumbnail { display: none !important; }

/* ============================================================
   MOBILE BASKET — complete rewrite to fix stacking bug
   ============================================================ */

/* Override conflicting flex rules */
.sdgv-basket-layout {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}
@media (min-width: 860px) {
  .sdgv-basket-layout {
    flex-direction: row !important;
    gap: 40px !important;
    align-items: flex-start !important;
  }
}

/* Items column — always full width on mobile */
.sdgv-basket-items {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Summary sidebar — full width mobile, fixed width desktop */
.sdgv-basket-summary {
  flex: 0 0 auto !important;
  width: 100% !important;
  max-width: 100% !important;
  position: static !important;
}
@media (min-width: 860px) {
  .sdgv-basket-summary {
    width: 340px !important;
    max-width: 340px !important;
    flex: 0 0 340px !important;
    position: sticky !important;
    top: 100px !important;
  }
}

/* Basket items always visible — remove the old flex:1 1 400px that hides them */
.sdgv-basket-item {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  align-items: flex-start !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid rgba(195,198,207,0.2) !important;
  width: 100% !important;
}
.sdgv-basket-item__info { flex: 1 1 auto !important; min-width: 0 !important; overflow: hidden; }
.sdgv-basket-item__info h3 { font-size: 15px !important; white-space: normal !important; word-break: break-word; }
.sdgv-basket-item__actions { flex-shrink: 0 !important; }

/* Basket item image */
.sdgv-basket-item > div:first-child:has(img) {
  flex-shrink: 0 !important; width: 64px !important; height: 64px !important;
}
@media (max-width: 400px) {
  .sdgv-basket-item > div:first-child:has(img) { width: 52px !important; height: 52px !important; }
}

/* ── HEADER: ensure it renders on WP single CPT pages ─────── */
/* When WP theme renders its own header, this CSS scopes correctly */
.sdgv-wrap .sdgv-global-header,
#sdgv-global-header { z-index: 9999 !important; }

/* On floating pill: mobile safe zone */
@media (max-width: 480px) {
  #sdgv-global-header[style*="fixed"] {
    width: 95% !important;
    top: 12px !important;
    padding: 0 16px !important;
    height: 54px !important;
  }
}

/* ==========================================================
   v2.0 — Layout & UI Fixes
   ========================================================== */

/* FIX 1 & 6 — Hero: remove excess top gap, shrink overall size */
.sdgv-cinematic-hero {
  padding-top: 0 !important;
  padding-bottom: 32px !important;
}
@media (min-width: 768px) {
  .sdgv-cinematic-hero {
    padding-top: 0 !important;
    padding-bottom: 40px !important;
  }
}
.sdgv-cinematic-hero__title {
  font-size: clamp(32px, 4.5vw, 60px) !important;
  margin-bottom: 12px !important;
}

/* FIX 4 — Filter bar: allow working controls without clipping */
.sdgv-util-bar__inner {
  flex-wrap: wrap !important;
  overflow-x: visible !important;
  -webkit-overflow-scrolling: touch !important;
}
.sdgv-util-bar__inner::-webkit-scrollbar { display: none !important; }
.sdgv-util-bar__right {
  flex-shrink: 0 !important;
  margin-left: auto !important;
  white-space: normal !important;
}
.sdgv-util-bar__filter-label,
.sdgv-util-bar__sort,
.sdgv-util-bar__result-count {
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

@media (max-width: 760px) {
  .sdgv-util-bar__inner {
    border-radius: 22px !important;
    align-items: stretch !important;
  }
  .sdgv-util-bar__cats,
  .sdgv-util-bar__left,
  .sdgv-util-bar__right {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .sdgv-util-bar__right {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .sdgv-util-bar__search,
  .sdgv-util-bar__filter-select,
  .sdgv-util-bar__sort {
    max-width: none !important;
    width: 100% !important;
  }
}

/* FIX 5 — Filter bar: push further down from hero */
.sdgv-util-bar {
  margin-top: 40px !important;
  margin-bottom: 32px !important;
}

/* FIX 3 — Account page: mobile-responsive layout */
.sdgv-account-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 36px 16px 80px;
}
@media (min-width: 640px) {
  .sdgv-account-wrap { padding: 40px 32px 80px; }
}
@media (min-width: 900px) {
  .sdgv-account-wrap { padding: 48px 48px 80px; }
}
.sdgv-account-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 860px) {
  .sdgv-account-layout {
    grid-template-columns: 280px 1fr;
    gap: 28px;
  }
}
.sdgv-account-card {
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: var(--vora-radius-xl);
  padding: 24px;
  box-shadow: var(--vora-shadow);
}
.sdgv-account-card__eyebrow {
  display: block;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vora-outline);
  margin-bottom: 8px;
}
.sdgv-account-card__name {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 400;
  color: var(--vora-on-surface);
  margin-bottom: 3px;
}
.sdgv-account-card__email {
  font-size: 12px;
  color: var(--vora-secondary);
  margin-bottom: 16px;
}
.sdgv-account-stat {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid rgba(195,198,207,0.15);
}
.sdgv-account-stat:last-child { border-bottom: none; }
.sdgv-account-stat__label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--vora-outline);
}
.sdgv-account-stat__val {
  font-weight: 600;
  color: var(--vora-on-surface);
  font-size: 13px;
}
.sdgv-orders-title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 400;
  color: var(--vora-on-surface);
  margin-bottom: 16px;
}
.sdgv-order-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(195,198,207,0.15);
}
.sdgv-order-row:first-of-type {
  border-top: 1px solid rgba(195,198,207,0.15);
}
@media (min-width: 480px) {
  .sdgv-order-row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
}
.sdgv-order-row__title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 15px;
  color: var(--vora-on-surface);
  flex: 1;
}
.sdgv-order-row__meta {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.sdgv-order-row__code {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--vora-tertiary);
  background: rgba(255,224,136,0.12);
  padding: 3px 8px;
  border-radius: var(--vora-radius-full);
}
.sdgv-order-row__price {
  font-size: 13px;
  font-weight: 600;
  color: var(--vora-on-surface);
  white-space: nowrap;
}
.sdgv-order-row__status {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: var(--vora-radius-full);
  white-space: nowrap;
}
.sdgv-order-row__status--complete  { background: rgba(45,106,79,0.10);  color: #2d6a4f; }
.sdgv-order-row__status--scheduled { background: rgba(255,224,136,0.22); color: var(--vora-tertiary); }
.sdgv-order-row__status--redeemed  { background: rgba(195,198,207,0.2);  color: var(--vora-outline); }
.sdgv-order-row__status--pending   { background: rgba(92,95,97,0.07);    color: var(--vora-secondary); }
.sdgv-orders-empty {
  text-align: center;
  padding: 40px 20px;
  font-size: 13px;
  color: var(--vora-secondary);
}
.sdgv-orders-empty__icon {
  font-size: 32px;
  margin-bottom: 10px;
  opacity: 0.3;
}

/* ============================================================
   v2.1 — Create Account Section + Card 4:3 + Header fixes
   ============================================================ */

/* ── Create Account Section ─────────────────────────────────── */
.sdgv-create-account-section {
  background: linear-gradient(135deg, #f8f9ff 0%, #eef1f8 100%);
  padding: 80px 24px;
  margin-top: 64px;
  display: block !important;
  visibility: visible !important;
}
/* Ensure anchor scroll target is reachable */
#sdgv-create-account { scroll-margin-top: 80px; }
.sdgv-create-account-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: start;
}
@media (min-width: 860px) {
  .sdgv-create-account-inner {
    grid-template-columns: 1fr 1fr;
    gap: 64px;
  }
}
.sdgv-ca-eyebrow {
  display: block;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vora-tertiary);
  margin-bottom: 12px;
}
.sdgv-ca-title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 400;
  color: var(--vora-on-surface);
  line-height: 1.1;
  margin: 0 0 14px;
}
.sdgv-ca-sub {
  font-size: 15px;
  color: var(--vora-secondary);
  line-height: 1.7;
  margin-bottom: 28px;
}
.sdgv-ca-benefits { display: flex; flex-direction: column; gap: 10px; }
.sdgv-ca-benefit {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--vora-on-surface);
}
.sdgv-ca-benefit span {
  color: var(--vora-tertiary);
  font-weight: 700;
  font-size: 16px;
}

/* ── Right: form card ─ */
.sdgv-ca-right {
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--vora-radius-xl);
  padding: 36px;
  box-shadow: var(--vora-shadow);
}
.sdgv-ca-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 480px) { .sdgv-ca-row { grid-template-columns: 1fr; } }
.sdgv-ca-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}
.sdgv-ca-field label {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--vora-outline);
  font-weight: 600;
}
.sdgv-ca-field input {
  padding: 11px 14px;
  border: 1.5px solid rgba(195,198,207,0.4);
  border-radius: var(--vora-radius);
  font-size: 14px;
  color: var(--vora-on-surface);
  background: rgba(248,249,255,0.6);
  transition: border-color 0.2s;
  width: 100%;
  box-sizing: border-box;
  font-family: var(--vora-sans);
}
.sdgv-ca-field input:focus {
  outline: none;
  border-color: var(--vora-tertiary);
  background: #fff;
}
.sdgv-ca-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 18px;
  cursor: pointer;
  font-size: 13px;
  color: var(--vora-secondary);
  line-height: 1.5;
}
.sdgv-ca-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 1px;
  accent-color: var(--vora-tertiary);
}
.sdgv-ca-submit {
  width: 100%;
  padding: 15px;
  background: var(--vora-on-surface);
  color: #fff;
  border: none;
  border-radius: var(--vora-radius-full);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.2s;
}
.sdgv-ca-submit:hover { opacity: 0.85; }
.sdgv-ca-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.sdgv-ca-panel .sdgv-ca-submit,
.sdgv-create-account-section .sdgv-ca-submit {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  border: 0 !important;
  border-radius: var(--vora-radius-full) !important;
  background: var(--vora-on-surface) !important;
  color: #ffffff !important;
  font-family: var(--vora-sans), sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
.sdgv-ca-panel .sdgv-ca-submit *,
.sdgv-create-account-section .sdgv-ca-submit * {
  color: #ffffff !important;
}
.sdgv-ca-panel .sdgv-ca-submit:hover,
.sdgv-create-account-section .sdgv-ca-submit:hover {
  background: var(--vora-on-surface) !important;
  color: #ffffff !important;
  opacity: 0.88 !important;
}
.sdgv-ca-terms {
  text-align: center;
  font-size: 11px;
  color: var(--vora-outline);
  margin-top: 12px;
  line-height: 1.5;
}
.sdgv-ca-terms a { color: var(--vora-tertiary); text-decoration: none; }

.sdgv-create-page {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0 90px;
}
.sdgv-create-hero {
  padding: 0;
}
.sdgv-create-hero .sdgv-ca-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 42px;
  align-items: stretch;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(195,198,207,0.24);
  border-radius: min(32px, var(--vora-radius-xl));
  padding: clamp(24px, 4vw, 46px);
  box-shadow: 0 28px 80px rgba(0,29,54,0.10);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}
.sdgv-create-hero .sdgv-ca-panel__intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sdgv-create-hero .sdgv-ca-title {
  font-size: clamp(36px, 5vw, 66px);
}
.sdgv-create-hero .sdgv-ca-sub {
  max-width: 440px;
}
.sdgv-create-hero .sdgv-ca-panel__form {
  background: rgba(248,249,255,0.76);
  border: 1px solid rgba(195,198,207,0.18);
  border-radius: 24px;
  padding: clamp(20px, 3vw, 32px);
}
.sdgv-create-login-note,
.sdgv-auth-foot {
  text-align: center;
  color: var(--vora-secondary);
  font-size: 13px;
  margin: 18px 0 0;
}
.sdgv-create-login-note a,
.sdgv-auth-foot a {
  color: var(--vora-tertiary);
  text-decoration: none;
  font-weight: 700;
}
.sdgv-account-cta {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  background: linear-gradient(145deg, rgba(255,255,255,0.84), rgba(248,249,255,0.68));
  border: 1px solid rgba(195,198,207,0.24);
  border-radius: min(28px, var(--vora-radius-xl));
  padding: 44px 48px;
  box-shadow: 0 22px 60px rgba(0,29,54,0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.sdgv-account-cta__copy {
  flex: 1 1 380px;
  min-width: 0;
}
.sdgv-account-cta h2 {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 400;
  color: var(--vora-on-surface);
  margin: 6px 0 10px;
  line-height: 1.1;
}
.sdgv-account-cta p {
  color: var(--vora-secondary);
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
  max-width: 520px;
}
.sdgv-account-cta__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
  flex-shrink: 0;
}
.sdgv-account-cta__button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 34px;
  border-radius: 9999px;
  background: var(--vora-on-surface);
  color: #fff !important;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  white-space: nowrap;
}
.sdgv-account-cta__link {
  display: block;
  margin: 0;
  color: var(--vora-tertiary);
  text-align: right;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
@media (max-width: 860px) {
  .sdgv-account-cta {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .sdgv-account-cta p { max-width: none; }
  .sdgv-account-cta__actions { align-items: center; width: 100%; }
  .sdgv-account-cta__button { width: 100%; }
  .sdgv-account-cta__link { text-align: center; }
}
.sdgv-auth-shell {
  max-width: 560px;
  margin: 0 auto;
  padding: var(--vora-space-8, 5rem) 0 70px;
}
.sdgv-auth-heading {
  text-align: center;
  margin-bottom: 30px;
}
.sdgv-auth-panel {
  background: rgba(255,255,255,0.78);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(195,198,207,0.22);
  border-radius: min(28px, var(--vora-radius-xl));
  padding: clamp(24px, 4vw, 34px);
  box-shadow: 0 24px 70px rgba(0,29,54,0.10);
}
.sdgv-auth-title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 400;
  color: var(--vora-on-surface);
  line-height: 1.05;
  margin: 0 0 10px;
}
.sdgv-auth-subtitle {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 28px;
  font-weight: 400;
  color: var(--vora-on-surface);
  margin: 0 0 8px;
}
.sdgv-auth-copy {
  font-size: 14px;
  color: var(--vora-secondary);
  line-height: 1.7;
  margin: 0 0 20px;
}
.sdgv-auth-links {
  display: flex;
  justify-content: center;
  margin-top: 14px;
}
.sdgv-auth-links button {
  border: 0;
  background: transparent;
  color: var(--vora-tertiary);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.sdgv-ca-error {
  background: rgba(186,26,26,0.08);
  border-radius: var(--vora-radius);
  padding: 12px 14px;
  margin-bottom: 14px;
  font-size: 13px;
  color: var(--vora-error,#ba1a1a);
}
.sdgv-ca-success {
  background: rgba(22,101,52,0.09);
  border-radius: var(--vora-radius);
  padding: 13px 15px;
  margin-bottom: 14px;
  font-size: 13px;
  color: #14532d;
}
@media (max-width: 820px) {
  .sdgv-create-hero .sdgv-ca-panel {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
@media (max-width: 520px) {
  .sdgv-create-page {
    width: min(100% - 20px, 480px);
    padding-top: 18px;
  }
  .sdgv-create-hero .sdgv-ca-panel,
  .sdgv-auth-panel,
  .sdgv-account-cta {
    border-radius: 20px;
    padding: 22px;
  }
}

/* ── Mini create account bar (basket/checkout) ─────────────── */
.sdgv-ca-mini {
  width: 100%;
  box-sizing: border-box;
  margin-top: 32px;
  background: rgba(248,249,255,0.95);
  border: 1px solid rgba(195,198,207,0.3);
  border-radius: var(--vora-radius-lg, 16px);
  padding: 20px 28px;
}
.sdgv-ca-mini__inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.sdgv-ca-mini__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sdgv-ca-mini__text strong {
  font-size: 14px;
  color: var(--vora-on-surface);
}
.sdgv-ca-mini__text span {
  font-size: 12px;
  color: var(--vora-secondary);
}
.sdgv-ca-mini__btn {
  padding: 10px 22px;
  background: var(--vora-on-surface);
  color: #fff !important;
  border-radius: var(--vora-radius-full);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.sdgv-ca-mini__btn:hover { opacity: 0.8; }

/* ── Remove theme footer below plugin footer ────────────────── */
.sdgv-fullpage .site-footer,
.sdgv-fullpage #colophon,
.sdgv-fullpage footer:not(.sdgv-footer) {
  display: none !important;
}

/* ============================================================
   v2.1 — Basket count live update fix
   ============================================================ */

/* Ensure the basket badge can be shown/hidden by JS
   even when initially hidden with !important */
.sdgv-basket-count[style*="display:flex"] {
  display: flex !important;
}

/* Pulse animation when item is added */
@keyframes sdgv-badge-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.55); }
  70%  { transform: scale(0.9); }
  100% { transform: scale(1); }
}
.sdgv-badge-pulse {
  animation: sdgv-badge-pop 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) forwards;
}

/* ── Short description on storefront card ─────────────────── */
.sdgv-card__excerpt {
  font-size: 12px;
  color: var(--vora-secondary);
  line-height: 1.55;
  margin: 4px 0 10px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* ============================================================
   IMPECCABLE DESIGN IMPROVEMENTS — Mobile, Cards, Animations
   ============================================================ */

/* ── Mobile: Single-column cards fill edge-to-edge ─── */
@media (max-width: 580px) {
  .sdgv-grid {
    grid-template-columns: 1fr;
    padding: 0 12px 48px;
    gap: 16px;
  }
  .sdgv-card {
    border-radius: 16px;
  }
  .sdgv-card__body {
    padding: 20px 20px 24px;
  }
  .sdgv-card__title {
    font-size: 22px;
    min-height: auto;
    margin-bottom: 8px;
  }
  .sdgv-card__desc {
    display: none; /* hide on mobile for cleaner card */
  }
  .sdgv-card__footer {
    margin-top: 12px;
  }
  /* Hero text scales well on small screens */
  .sdgv-cinematic-hero {
    padding: 48px 16px 36px !important;
    text-align: center;
  }
  /* Utility bar scrollable on mobile */
  .sdgv-util-bar {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap;
    justify-content: flex-start;
    padding-bottom: 4px;
  }
  .sdgv-util-bar::-webkit-scrollbar { display: none; }
  /* Header pill smaller on very small screens */
  .sdgv-header {
    height: 52px !important;
    padding: 0 16px !important;
    top: 10px !important;
    width: 92% !important;
  }
  .sdgv-header__logo--text { font-size: 17px; }
  .sdgv-nav-offset { padding-top: 80px !important; }
  /* Checkout full-width on mobile */
  .sdgv-wrap--checkout { padding: 32px 14px 80px !important; }
  .sdgv-wrap--confirmation { padding: 48px 14px 80px !important; }
  .sdgv-wrap--page { padding: 40px 14px !important; }
  /* Basket item title truncation */
  .sdgv-basket-item__info h3 { font-size: 15px; }
  /* Toast full-width on mobile */
  .sdgv-toast {
    bottom: 16px; right: 12px; left: 12px;
    max-width: none;
    text-align: center;
  }
  /* Redemption page mobile */
  .sdgv-redeem__form-title { font-size: 22px; }
  .sdgv-redeem-wrap { padding: 0 14px 48px !important; }
}

/* ── Voucher detail page: mobile improvements ─── */
@media (max-width: 640px) {
  .sdgv-sv-layout {
    flex-direction: column !important;
    padding: 0 16px !important;
  }
  .sdgv-sv__sidebar { display: none !important; }
  .sdgv-sv__content { padding: 24px 0 !important; max-width: 100% !important; }
  .sdgv-sv__hero-img { border-radius: 12px; }
  /* Gift card preview fills width */
  .sdgv-voucher-preview-wrap { padding: 0 16px !important; }
}

/* ── Card: show description at 2 columns ─── */
@media (min-width: 581px) and (max-width: 960px) {
  .sdgv-card__title { font-size: 21px; }
  .sdgv-card__body { padding: 20px 20px 24px; }
  .sdgv-card__desc { font-size: 12px; }
}

/* ── Card hover: only on touch-capable devices ─── */
@media (hover: none) {
  .sdgv-card:hover {
    transform: none;
    box-shadow: 0 1px 3px rgba(0,29,54,0.06), 0 20px 40px rgba(0,29,54,0.07);
  }
  .sdgv-card:active {
    transform: scale(0.98);
    transition: transform 0.15s;
  }
}

/* ── Button: user-set colour vars (overrideable from portal settings) ─── */
.sdgv-btn--primary,
.sdgv-btn--outline {
  background: var(--sdgv-btn-bg, var(--vora-on-surface)) !important;
  color: var(--sdgv-btn-text, #ffffff) !important;
  transition: background 0.3s, color 0.3s, transform 0.2s, box-shadow 0.3s !important;
}
.sdgv-btn--primary:hover,
.sdgv-btn--outline:hover {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))) !important;
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)) !important;
  opacity: 1;
  transform: translateY(-1px);
  box-shadow: 0 14px 32px rgba(0,29,54,0.18);
}

/* ── Variant button: cleaner style ─── */
.sdgv-variant-btn {
  border-radius: 9999px !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  padding: 10px 16px !important;
  border: 1px solid rgba(195,198,207,0.3) !important;
  background: rgba(255,255,255,0.7) !important;
  transition: all 0.2s !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.35 !important;
}
.sdgv-variant-btn:hover {
  background: var(--sdgv-hover-bg, var(--vora-on-surface)) !important;
  color: var(--sdgv-hover-text, #ffffff) !important;
  border-color: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))) !important;
}

/* ── Hero: bigger, more editorial ─── */
.sdgv-cinematic-hero__eyebrow {
  font-size: 9px;
  letter-spacing: 0.28em;
}
.sdgv-cinematic-hero__title {
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* ── Checkout: improve mobile padding ─── */
@media (max-width: 480px) {
  .sdgv-checkout-section { padding: 20px 16px; border-radius: 16px; }
  .sdgv-checkout-section h2 { font-size: 14px; }
  .sdgv-checkout-field input,
  .sdgv-checkout-field select,
  .sdgv-checkout-field textarea {
    font-size: 16px !important; /* prevents iOS zoom */
    border-radius: 12px;
  }
  /* Stripe card element */
  #sdgv-card-element { border-radius: 12px; }
  /* Order summary sticky on mobile */
  .sdgv-checkout-sidebar {
    position: static !important;
    margin-top: 24px;
  }
}

/* ── Redemption page: more refined ─── */
.sdgv-redeem__code-input {
  border-radius: 12px !important;
  font-size: 16px !important; /* prevents iOS zoom */
  padding: 14px 18px !important;
}
.sdgv-btn--balance,
.sdgv-btn--redeem {
  border-radius: 9999px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  min-height: 48px !important;
}

/* ── Footer: cleaner on mobile ─── */
@media (max-width: 580px) {
  .sdgv-footer {
    flex-direction: column;
    text-align: center;
    padding: 28px 16px;
    gap: 12px;
  }
  .sdgv-footer__links {
    justify-content: center;
  }
}

/* ── Confirmation page: more celebratory ─── */
.sdgv-confirmation-icon {
  font-size: 56px !important;
  animation: celebrateBounce 0.6s cubic-bezier(0.68,-0.55,0.27,1.55) !important;
}
@keyframes celebrateBounce {
  0%   { transform: scale(0.5); opacity: 0; }
  70%  { transform: scale(1.15); }
  100% { transform: scale(1); opacity: 1; }
}

/* ── v2.9.5.22 premium public UI ───────────────────────────── */
.sdgv-wrap--checkout {
  /* width set by sdgv-premium.css for consistency across all storefront pages */
  margin: 0 auto;
  padding: 54px 0 88px;
}
.sdgv-wrap--checkout .sdgv-checkout-header {
  margin: 0 0 32px !important;
}
.sdgv-wrap--checkout .sdgv-back-link {
  margin: 0 0 12px;
  color: var(--vora-muted, #6f7680);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: none;
}
.sdgv-wrap--checkout .sdgv-page-title {
  color: var(--vora-primary, #001d36);
  font-size: clamp(44px, 5vw, 72px) !important;
  line-height: .95;
}
.sdgv-wrap--checkout .sdgv-checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 390px);
  gap: 28px;
  align-items: start;
}
.sdgv-wrap--checkout .sdgv-checkout-form {
  display: grid;
  gap: 18px;
  min-width: 0;
}
.sdgv-wrap--checkout .sdgv-checkout-section,
.sdgv-wrap--checkout .sdgv-personalise-section {
  margin: 0;
  padding: 26px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 10px;
  background: var(--vora-surface, #fff);
  box-shadow: 0 12px 30px rgba(0, 29, 54, .035);
}
.sdgv-wrap--checkout .sdgv-checkout-section:first-child {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.sdgv-checkout-section__eyebrow {
  display: block;
  margin: 0 0 10px;
  color: var(--vora-primary, #001d36);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.2;
  text-transform: uppercase;
}
.sdgv-wrap--checkout .sdgv-section-title {
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  color: var(--vora-primary, #001d36);
  font-size: 30px;
  line-height: 1;
}
.sdgv-wrap--checkout .sdgv-voucher-type-grid,
.sdgv-wrap--checkout .sdgv-voucher-type-grid[style] {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px;
  margin: 0;
}
.sdgv-wrap--checkout .sdgv-type-card {
  display: flex;
  min-height: 110px;
  align-items: center;
  gap: 15px;
  padding: 20px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 12px;
  background: var(--vora-surface, #fff);
  text-align: left;
}
.sdgv-wrap--checkout .sdgv-type-card:hover,
.sdgv-wrap--checkout .sdgv-type-card:focus-within {
  border-color: var(--vora-accent, #b8872a);
  transform: none;
}
.sdgv-wrap--checkout .sdgv-type-card--active {
  border: 2px solid var(--vora-accent, #b8872a);
  box-shadow: 0 8px 20px rgba(184, 135, 42, .13);
}
.sdgv-type-card__mark {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--vora-accent, #b8872a) 12%, #fff);
  color: var(--vora-accent, #b8872a);
}
.sdgv-type-card__mark svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
.sdgv-type-card__copy {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.sdgv-wrap--checkout .sdgv-type-card__label {
  font-size: 11px;
  letter-spacing: .12em;
}
.sdgv-type-card__copy small {
  color: var(--vora-muted, #6f7680);
  font-size: 12px;
  line-height: 1.4;
}
.sdgv-wrap--checkout .sdgv-type-card__price {
  display: block !important;
  margin-left: auto;
  color: var(--vora-accent, #b8872a);
  font-size: 11px;
  white-space: nowrap;
}
.sdgv-wrap--checkout .sdgv-print-note {
  margin: 16px 0 0;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 8px;
  background: color-mix(in srgb, var(--vora-page-bg, #fbfaf7) 82%, #fff);
}
.sdgv-wrap--checkout .sdgv-envelope-panel {
  margin: 18px 0 0;
  border-color: var(--vora-accent, #b8872a);
  border-radius: 12px;
  background: var(--vora-surface, #fff);
  box-shadow: none;
}
.sdgv-wrap--checkout .sdgv-input,
.sdgv-wrap--checkout .sdgv-textarea,
.sdgv-wrap--checkout .sdgv-select {
  border: 1px solid #d6dbe3;
  border-radius: 7px;
  background: #fff;
}
.sdgv-wrap--checkout .sdgv-textarea { border-radius: 7px !important; }
.sdgv-wrap--checkout .sdgv-input:focus,
.sdgv-wrap--checkout .sdgv-textarea:focus,
.sdgv-wrap--checkout .sdgv-select:focus {
  border-color: var(--vora-accent, #b8872a);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--vora-accent, #b8872a) 14%, transparent);
}
.sdgv-wrap--checkout .sdgv-secure-notice {
  margin: 18px 0;
  padding: 13px 0 0;
  border-top: 1px solid var(--vora-border, #e7dfd2);
  background: transparent;
}
.sdgv-wrap--checkout .sdgv-btn--pay {
  border-radius: 7px !important;
  background: var(--vora-primary, #001d36) !important;
  box-shadow: none;
}
.sdgv-wrap--checkout .sdgv-checkout-sidebar {
  position: sticky;
  top: 28px;
  order: 0;
  padding: 26px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 10px;
  background: var(--vora-surface, #fff);
  box-shadow: 0 18px 44px rgba(0, 29, 54, .07);
}
.sdgv-wrap--checkout .sdgv-checkout-sidebar h3 {
  margin: 0 0 20px;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--vora-border, #e7dfd2);
  color: var(--vora-primary, #001d36);
  font-family: var(--vora-serif);
  font-size: 28px;
  font-style: italic;
  font-weight: 400;
}
.sdgv-wrap--checkout .sdgv-summary-item {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 14px;
  padding: 0 0 20px;
  margin: 0 0 18px;
}
.sdgv-wrap--checkout .sdgv-summary-item__img {
  width: 96px;
  height: 88px;
  margin: 0;
  border-radius: 7px;
  object-fit: cover;
}
.sdgv-wrap--checkout .sdgv-summary-item__title {
  margin: 0 0 5px;
  color: var(--vora-primary, #001d36);
  font-size: 19px;
  line-height: 1.1;
}
.sdgv-wrap--checkout .sdgv-summary-item__variant { margin: 0; }
.sdgv-wrap--checkout .sdgv-summary-item__price { margin: 10px 0 0; color: var(--vora-primary, #001d36); }
.sdgv-wrap--checkout .sdgv-summary-total {
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--vora-border, #e7dfd2);
  color: var(--vora-primary, #001d36);
  font-size: 28px;
}
.sdgv-wrap--checkout .sdgv-how-it-works { display: none; }

/* Reference-led Concierge: one visual launcher, two intentional actions. */
.sdgv-gift-concierge {
  right: max(20px, env(safe-area-inset-right, 0px));
  bottom: max(20px, env(safe-area-inset-bottom, 0px));
}
.sdgv-gift-concierge .sdgv-chatbot__launcher {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: var(--sdgv-chatbot-button-bg, #071225) !important;
  box-shadow: 0 12px 30px rgba(0, 29, 54, .28);
}
.sdgv-gift-concierge .sdgv-chatbot__toggle {
  min-height: 52px;
  padding: 0 23px 0 17px;
}
.sdgv-gift-concierge .sdgv-chatbot__basket {
  min-width: 50px;
  min-height: 52px;
  padding: 0 12px 0 17px;
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header {
  display: inline-grid;
  width: 42px;
  min-width: 42px;
  min-height: 42px;
  padding: 0;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 50%;
  background: #fff;
  color: var(--vora-primary, #001d36);
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header[hidden] { display: none; }
.sdgv-gift-concierge .sdgv-chatbot__basket-count {
  top: 7px;
  right: 5px;
  background: var(--vora-accent, #b8872a);
  color: #fff;
  border-color: #fff;
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header .sdgv-chatbot__basket-count {
  top: -4px;
  right: -4px;
  background: var(--vora-accent, #b8872a);
  color: #fff;
}
.sdgv-gift-concierge .sdgv-chatbot__toggle--pulse { animation: sdgv-chatbot-basket-pulse .48s cubic-bezier(.34,1.56,.64,1); }
.sdgv-gift-concierge .sdgv-chatbot__panel {
  width: min(430px, calc(100vw - 32px));
  height: min(700px, calc(100dvh - 88px));
  max-height: min(700px, calc(100dvh - 88px));
  border-radius: 16px;
  transform-origin: bottom right;
}
.sdgv-gift-concierge .sdgv-chatbot__head { padding: 20px 22px; }
.sdgv-gift-concierge .sdgv-chatbot__head-title { color: var(--vora-primary, #001d36); }
.sdgv-gift-concierge .sdgv-concierge__progress { display: none; }
.sdgv-gift-concierge .sdgv-concierge__body { padding: 0 28px 24px; }
.sdgv-concierge__stage--quick {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}
.sdgv-concierge__welcome {
  align-self: flex-start;
  max-width: 276px;
  margin: 28px 0 22px;
  padding: 18px 20px;
  border-radius: 18px 18px 18px 4px;
  background: #f1f2f4;
  color: var(--vora-primary, #001d36);
  font-size: 16px;
  line-height: 1.48;
}
.sdgv-concierge__welcome p { margin: 0; }
.sdgv-concierge__welcome p + p { margin-top: 10px; }
.sdgv-concierge__stage--quick .sdgv-concierge__eyebrow {
  margin: 0 0 12px !important;
  color: var(--vora-muted, #6f7680) !important;
  font-size: 10px !important;
  text-align: left;
}
.sdgv-concierge__stage--quick .sdgv-concierge__question {
  margin: 28px 0 18px;
  color: var(--vora-primary, #001d36);
  font-family: var(--vora-serif);
  font-size: 30px;
  font-style: italic;
  font-weight: 400;
  text-align: left;
}
.sdgv-concierge__quick-list { display: grid; gap: 10px; }
.sdgv-concierge__quick-option {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 18px;
  min-height: 54px;
  align-items: center;
  gap: 12px;
  padding: 10px 15px;
  border: 1px solid color-mix(in srgb, var(--vora-accent, #b8872a) 38%, #e7dfd2);
  border-radius: 999px;
  background: #fff;
  color: var(--vora-primary, #001d36);
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  text-align: left;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.sdgv-concierge__quick-option:hover,
.sdgv-concierge__quick-option:focus-visible {
  border-color: var(--vora-accent, #b8872a);
  background: color-mix(in srgb, var(--vora-accent, #b8872a) 7%, #fff);
  outline: none;
  transform: translateX(2px);
}
.sdgv-concierge__quick-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  color: var(--vora-accent, #b8872a);
}
.sdgv-concierge__quick-icon svg,
.sdgv-concierge__quick-option > svg,
.sdgv-concierge__message-form svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}
.sdgv-concierge__quick-option > svg { width: 17px; height: 17px; color: var(--vora-muted, #6f7680); }
.sdgv-concierge__back--text {
  width: max-content;
  margin: 16px 0 0;
  border: 0;
  background: transparent;
  color: var(--vora-primary, #001d36);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  text-decoration: underline;
}
.sdgv-concierge__message-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 8px;
  margin-top: auto;
  padding-top: 22px;
}
.sdgv-concierge__message-input {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px 15px;
  border: 1px solid #d6dbe3;
  border-radius: 8px;
  background: #fff;
  color: var(--vora-primary, #001d36);
  font: inherit;
  font-size: 16px;
}
.sdgv-concierge__message-input:focus { border-color: var(--vora-accent, #b8872a); outline: 2px solid color-mix(in srgb, var(--vora-accent, #b8872a) 20%, transparent); outline-offset: 1px; }
.sdgv-concierge__message-form button {
  display: grid;
  width: 44px;
  height: 48px;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: var(--vora-primary, #001d36);
  color: #fff;
  cursor: pointer;
}
.sdgv-gift-concierge .sdgv-mini-basket {
  width: min(370px, 100%);
  border-left: 1px solid var(--vora-border, #e7dfd2);
  box-shadow: -14px 0 34px rgba(0, 29, 54, .12);
}
.sdgv-mini-basket__head h3 { color: var(--vora-primary, #001d36); font-family: var(--vora-serif); font-size: 28px; font-style: italic; font-weight: 400; }
.sdgv-mini-basket__primary { border-radius: 7px; background: var(--vora-primary, #001d36); }
.sdgv-mini-basket__secondary { color: var(--vora-primary, #001d36); }

/* Premium redemption card aligns the existing secure workflow with the public design. */
.sdgv-redeem-wrap {
  margin-top: 28px !important;
  padding: 0 !important;
}
.sdgv-redeem__right {
  padding: clamp(26px, 4vw, 52px) !important;
  border: 1px solid var(--vora-border, #e7dfd2) !important;
  border-radius: 12px !important;
  background: var(--vora-surface, #fff) !important;
  box-shadow: 0 18px 44px rgba(0, 29, 54, .06) !important;
}
.sdgv-redeem__form-title { color: var(--vora-primary, #001d36) !important; font-size: clamp(32px, 4vw, 46px) !important; }
.sdgv-redeem__code-input { border-color: var(--vora-accent, #b8872a) !important; border-radius: 7px !important; }
.sdgv-btn--balance { border-radius: 7px !important; }

@media (max-width: 899px) {
  .sdgv-wrap--checkout { width: 100%; padding-top: 32px; }
  .sdgv-wrap--checkout .sdgv-checkout-layout { grid-template-columns: 1fr; }
  .sdgv-wrap--checkout .sdgv-checkout-sidebar { position: static; order: 0; }
}
@media (max-width: 620px) {
  .sdgv-wrap--checkout .sdgv-mobile-title-row { align-items: flex-start; }
  .sdgv-wrap--checkout .sdgv-page-title { font-size: 46px !important; }
  .sdgv-wrap--checkout .sdgv-voucher-type-grid,
  .sdgv-wrap--checkout .sdgv-voucher-type-grid[style] { grid-template-columns: 1fr !important; }
  .sdgv-wrap--checkout .sdgv-checkout-section,
  .sdgv-wrap--checkout .sdgv-personalise-section { padding: 20px; }
  .sdgv-wrap--checkout .sdgv-checkout-section:first-child { padding: 0; }
  .sdgv-wrap--checkout .sdgv-envelope-grid { grid-template-columns: 1fr; }
  .sdgv-gift-concierge { right: max(10px, env(safe-area-inset-right, 0px)); bottom: max(10px, env(safe-area-inset-bottom, 0px)); }
  .sdgv-gift-concierge .sdgv-chatbot__panel { position: fixed; inset: auto 10px max(10px, env(safe-area-inset-bottom, 0px)) 10px; width: auto; height: min(690px, calc(100dvh - 20px)); max-height: min(690px, calc(100dvh - 20px)); }
  .sdgv-gift-concierge .sdgv-concierge__body { padding-inline: 20px; }
  .sdgv-concierge__welcome { margin-top: 20px; }
  .sdgv-gift-concierge .sdgv-mini-basket { width: 100%; }
}


/* ── Checkout: order summary items vertical stack ─── */
.sdgv-summary-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(195,198,207,0.15);
}
.sdgv-summary-item:last-of-type { border-bottom: none; }
.sdgv-summary-item__img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 10px;
  margin-bottom: 6px;
}
.sdgv-summary-item__title {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 17px; font-weight: 400;
  color: var(--vora-on-surface);
}
.sdgv-summary-item__variant {
  font-size: 12px; color: var(--vora-secondary); font-style: italic;
}
.sdgv-summary-item__price {
  font-size: 15px; font-weight: 600; color: var(--vora-on-surface);
}
.sdgv-summary-total {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 16px 0 0; font-size: 18px;
  font-family: var(--vora-serif); font-style: italic;
  color: var(--vora-on-surface); margin-top: 4px;
}
.sdgv-checkout-summary h3 {
  font-family: var(--vora-serif); font-style: italic;
  font-size: 22px; font-weight: 400; color: var(--vora-on-surface);
  margin-bottom: 16px; padding-bottom: 12px;
  border-bottom: 1px solid rgba(195,198,207,0.2);
}

/* ── Variant buttons honour the portal hover controls ─────── */
.sdgv-variant-btn:hover {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))) !important;
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)) !important;
  border-color: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))) !important;
}

/* ============================================================
   v2.5.8 — Basket/checkout account placement + luxury summary
   ============================================================ */
.sdgv-mobile-title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.sdgv-header-account-btn {
  display: none;
  flex: 0 0 auto;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  padding: 10px 14px;
  background: var(--vora-on-surface);
  color: #fff !important;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 10px 26px rgba(0,29,54,0.12);
}

.sdgv-basket-options {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}
@media (min-width: 900px) {
  .sdgv-basket-options {
    grid-template-columns: minmax(340px, 0.82fr) minmax(520px, 1.18fr);
    gap: 48px;
  }
  .sdgv-basket-options .sdgv-basket-summary {
    position: static !important;
    top: auto !important;
    max-width: none !important;
  }
}

@media (min-width: 1180px) {
  .sdgv-basket-options {
    grid-template-columns: minmax(360px, 420px) minmax(620px, 1fr);
    gap: 72px;
  }
}

@media (min-width: 900px) {
  .sdgv-checkout-form {
    flex: 1 1 720px !important;
  }
  .sdgv-checkout-sidebar {
    flex: 0 0 340px !important;
  }
  .sdgv-checkout-form > .sdgv-ca-panel {
    max-width: 760px;
  }
}

.sdgv-ca-panel {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(248,249,255,0.82));
  border: 1px solid rgba(195,198,207,0.36);
  border-radius: var(--vora-radius-xl);
  padding: 28px;
  box-shadow: 0 24px 70px rgba(0,29,54,0.09);
  scroll-margin-top: 96px;
}
.sdgv-checkout-form > .sdgv-ca-panel {
  margin-bottom: 28px;
}
.sdgv-checkout-account-bottom {
  width: 100%;
  max-width: 920px;
  margin: 56px auto 0;
}
.sdgv-checkout-account-bottom .sdgv-ca-panel {
  display: grid;
  grid-template-columns: minmax(260px, 0.85fr) minmax(360px, 1.15fr);
  gap: 28px;
  align-items: start;
}
.sdgv-checkout-account-bottom .sdgv-ca-panel__intro {
  border-bottom: 0;
  border-right: 1px solid rgba(195,198,207,0.22);
  padding-bottom: 0;
  padding-right: 28px;
  margin-bottom: 0;
}
.sdgv-ca-panel__intro {
  border-bottom: 1px solid rgba(195,198,207,0.22);
  padding-bottom: 20px;
  margin-bottom: 22px;
}
.sdgv-ca-panel__form {
  min-width: 0;
  max-width: 420px;
  width: 100%;
  margin: 0 auto;
}
.sdgv-ca-field small {
  color: var(--vora-secondary);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.sdgv-ca-error {
  color: var(--vora-error, #ba1a1a);
  font-size: 13px;
  margin-bottom: 12px;
  line-height: 1.45;
}
.sdgv-ca-success {
  text-align: center;
  padding: 30px 10px;
}
.sdgv-ca-success__mark {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(184,135,42,0.12);
  color: var(--vora-tertiary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  font-size: 28px;
  font-weight: 700;
}
.sdgv-ca-success h3 {
  font-family: var(--vora-serif);
  font-style: italic;
  font-size: 24px;
  font-weight: 400;
  margin: 0 0 8px;
}
.sdgv-ca-success p {
  font-size: 13px;
  color: var(--vora-secondary);
  line-height: 1.65;
  margin: 0;
}

.sdgv-how-it-works {
  margin-top: 18px;
}
.sdgv-how-it-works h4 {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vora-outline);
  margin-bottom: 14px;
}
.sdgv-how-step {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 11px;
  align-items: start;
  padding: 10px 0;
  border-bottom: 1px solid rgba(195,198,207,0.14);
}
.sdgv-how-step:last-child { border-bottom: none; }
.sdgv-how-step__icon,
.sdgv-how-it-works--luxury li span {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(184,135,42,0.10);
  color: var(--vora-tertiary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.sdgv-how-step span:last-child {
  color: var(--vora-secondary);
  font-size: 13px;
  line-height: 1.55;
}
.sdgv-how-it-works--luxury ol {
  margin: 0;
}
.sdgv-how-it-works--luxury li {
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-areas: "num title" "num text";
  column-gap: 11px;
  row-gap: 2px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(195,198,207,0.14);
}
.sdgv-how-it-works--luxury li:last-child { border-bottom: none; }
.sdgv-how-it-works--luxury li span { grid-area: num; }
.sdgv-how-it-works--luxury li strong {
  grid-area: title;
  color: var(--vora-on-surface);
  font-size: 13px;
  letter-spacing: 0.02em;
}
.sdgv-how-it-works--luxury li em {
  grid-area: text;
  color: var(--vora-secondary);
  font-size: 12px;
  font-style: normal;
  line-height: 1.55;
}

@media (max-width: 640px) {
  .sdgv-mobile-title-row {
    align-items: center;
    gap: 12px;
  }
  .sdgv-mobile-title-row .sdgv-page-title {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .sdgv-header-account-btn {
    display: inline-flex;
    max-width: 138px;
    text-align: center;
    white-space: normal;
  }
  .sdgv-basket-options {
    gap: 18px;
  }
  .sdgv-ca-panel {
    padding: 22px 16px;
    border-radius: 18px;
  }
  .sdgv-ca-panel__intro {
    padding-bottom: 16px;
    margin-bottom: 18px;
  }
  .sdgv-ca-title {
    font-size: 28px;
  }
  .sdgv-ca-submit {
    color: #fff !important;
    min-height: 50px;
    line-height: 1.2;
  }
  .sdgv-ca-row {
    grid-template-columns: 1fr !important;
    gap: 0;
  }
  .sdgv-checkout-account-bottom {
    margin-top: 34px;
  }
  .sdgv-checkout-account-bottom .sdgv-ca-panel {
    display: block;
  }
  .sdgv-checkout-account-bottom .sdgv-ca-panel__intro {
    border-right: 0;
    border-bottom: 1px solid rgba(195,198,207,0.22);
    padding-right: 0;
    padding-bottom: 16px;
    margin-bottom: 18px;
  }
  .sdgv-how-step,
  .sdgv-how-it-works--luxury li {
    grid-template-columns: 30px 1fr;
  }
}

/* v2.6.0 — remaining responsive fixes */
.sdgv-voucher-type-grid[style] {
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}
.sdgv-type-card {
  min-height: 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
#type-animated-card {
  padding: 22px 28px;
}
#type-animated-card .sdgv-type-card__icon {
  font-size: clamp(30px, 3vw, 42px);
}
#type-animated-card .sdgv-type-card__label {
  max-width: 24ch;
  font-size: clamp(13px, 1.2vw, 16px);
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
}
#type-animated-card .sdgv-type-card__desc {
  max-width: 34ch;
  font-size: clamp(12px, 1vw, 13px);
}

@media (max-width: 700px) {
  .sdgv-voucher-type-grid[style] {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .sdgv-envelope-grid {
    grid-template-columns: 1fr;
  }
  .sdgv-envelope-panel,
  .sdgv-personalise-section {
    padding: 22px 16px;
    border-radius: 18px;
  }
  .sdgv-panel-intro {
    margin-bottom: 18px;
    padding-bottom: 14px;
  }
  .sdgv-print-note {
    border-radius: 18px;
  }
  .sdgv-type-card {
    min-height: 70px;
    padding: 20px 18px !important;
  }
  .sdgv-type-card__label {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.2;
  }
  .sdgv-type-card__desc {
    font-size: 11px;
  }
}

@media (max-width: 420px) {
  .sdgv-voucher-type-grid[style] {
    grid-template-columns: 1fr !important;
  }
  .sdgv-type-card {
    min-height: 68px;
  }
}

/* v2.6.5 — Portal-controlled typography, backgrounds and hero media */
.sdgv-cinematic-hero {
  position: relative;
  overflow: hidden;
}
.sdgv-cinematic-hero__title,
.sdgv-sv__title,
.sdgv-page-title {
  font-size: clamp(32px, 5vw, var(--sdgv-page-title-size, 60px)) !important;
}
.sdgv-global-header a,
#sdgv-hdr a {
  font-size: var(--sdgv-nav-font-size, 13px) !important;
}
.sdgv-card__title {
  font-size: var(--sdgv-card-title-size, 24px) !important;
}
.sdgv-card__excerpt,
.sdgv-card__cat,
.sdgv-sv__body,
.sdgv-sv__excerpt,
.sdgv-form-group input,
.sdgv-form-group textarea,
.sdgv-form-group select {
  font-size: var(--sdgv-card-body-size, var(--sdgv-body-font-size, 14px)) !important;
}
.sdgv-btn,
.sdgv-variant-btn,
button.sdgv-btn {
  font-size: var(--sdgv-button-font-size, 12px) !important;
}
.sdgv-cinematic-hero--media {
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(420px, 64vh, 760px);
  margin: 0 0 42px !important;
  padding-left: clamp(22px, 5vw, 76px) !important;
  padding-right: clamp(22px, 5vw, 76px) !important;
  box-sizing: border-box !important;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  color: #fff;
}
.sdgv-cinematic-hero--media .sdgv-cinematic-hero__media {
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(22px, 5vw, 76px);
  right: clamp(22px, 5vw, 76px);
  background-size: cover;
  background-position: center;
  object-fit: cover;
  z-index: 0;
}
.sdgv-cinematic-hero--media::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(22px, 5vw, 76px);
  right: clamp(22px, 5vw, 76px);
  background: linear-gradient(180deg, rgba(0,29,54,0.18), rgba(0,29,54,0.58));
  z-index: 1;
}
.sdgv-cinematic-hero__content {
  position: relative;
  z-index: 2;
  padding: 36px 20px;
  max-width: 100%;
  overflow: visible;
  /* Use portal-configurable positioning with safe clamping */
  transform: translate(
    clamp(-30%, var(--sdgv-hero-content-x, 0%)),
    clamp(-30%, var(--sdgv-hero-content-y, 0%))
  );
}
/* Ensure hero kicker and CTA actions are also visible */
.sdgv-cinematic-hero__kicker {
  position: relative;
  z-index: 2;
}
.sdgv-cinematic-hero__actions {
  position: relative;
  z-index: 2;
}
.sdgv-cinematic-hero--media .sdgv-cinematic-hero__title,
.sdgv-cinematic-hero--media .sdgv-cinematic-hero__sub,
.sdgv-cinematic-hero--media .sdgv-cinematic-hero__kicker {
  color: #fff !important;
}
@media (max-width: 640px) {
  .sdgv-cinematic-hero--media {
    max-width: 100%;
    min-height: 420px;
    border-radius: 0;
  }
}

/* v2.8.4 — voucher detail preview: desktop stays desktop, phones stack portrait */
.sdgv-sv-responsive-preview {
  width: 100%;
}
@media (max-width: 640px) {
  .sdgv-sv-responsive-preview {
    width: min(100%, 430px);
    margin: 0 auto;
    padding: 10px;
    background: #050607;
    border-radius: 24px;
    box-shadow: 0 22px 58px rgba(0,29,54,0.22);
  }
  .sdgv-sv-responsive-preview > div {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    min-height: 680px !important;
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }
  .sdgv-sv-responsive-preview > div > div:first-child {
    order: 1 !important;
    width: 100% !important;
    min-height: 260px !important;
    flex: 0 0 260px !important;
  }
  .sdgv-sv-responsive-preview > div > div:not(:first-child) {
    order: 2 !important;
    width: 100% !important;
    min-height: auto !important;
    flex: 1 1 auto !important;
  }
  .sdgv-sv-responsive-preview > div > div:first-child img,
  .sdgv-sv-responsive-preview > div img:first-child {
    width: 100% !important;
    height: 260px !important;
    min-height: 260px !important;
    object-fit: cover !important;
  }
  .sdgv-sv-responsive-preview > div > div:first-child > div[style*="linear-gradient"] {
    background: linear-gradient(to bottom, transparent 56%, rgba(13,35,64,0.96) 100%) !important;
  }
}
/* Vora category voucher card renderer */
.sdgv-vora-card,
.sdgv-vora-card * {
  box-sizing: border-box;
}
.sdgv-vora-card svg {
  display: block;
  max-width: 100%;
  height: auto;
}
.sdgv-sv-responsive-preview > .sdgv-vora-card,
.sdgv-sv-responsive-preview .sdgv-vora-card {
  position: relative !important;
  display: block !important;
  flex-direction: initial !important;
}
@media (max-width: 640px) {
  html:has(.sdgv-vora-card),
  body:has(.sdgv-vora-card) {
    margin: 0 !important;
    padding: 0 !important;
  }
  .sdgv-vora-card {
    position: fixed !important;
    inset: 0 !important;
    display: block !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }
  .sdgv-vora-card__overlay {
    position: absolute !important;
    inset: 0 !important;
    min-height: 0 !important;
    background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0.2) 36%, rgba(0,0,0,0.78) 100%) !important;
  }
  .sdgv-vora-card__content {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: clamp(28px, 8vw, 42px) clamp(22px, 7vw, 34px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
  }
  .sdgv-vora-card__content > div:first-child {
    margin-bottom: 34px !important;
  }
  .sdgv-vora-card__content [style*="font-size:34px"] {
    font-size: clamp(34px, 12vw, 46px) !important;
    line-height: 0.96 !important;
  }
  .sdgv-vora-card__content [style*="font-size:25px"] {
    font-size: 30px !important;
  }
  .sdgv-vora-card__content [style*="color:"] {
    color: #fff !important;
  }
  .sdgv-vora-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
  }
}

/* ── Vora gift concierge chatbot ─────────────────────────────
   v2.9.5 — Fully wired to portal settings via CSS custom
   properties (--sdgv-chatbot-*). Every fallback below matches
   the previous hard-coded value, so sites that have never
   touched the portal chatbot settings look identical.
─────────────────────────────────────────────────────────────── */
.sdgv-chatbot {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 9999;
  max-width: calc(100vw - 24px);
  font-family: var(--sdgv-chatbot-font-family, var(--vora-sans));
}

/* ============================================================
   PHASE 6.5.5 — authoritative voucher detail and safe previews
   ============================================================ */
.sdgv-sv655 {
  min-height: 100vh;
  background: var(--vora-surface, #faf9f6);
  color: var(--vora-on-surface, #172331);
}
.sdgv-sv655 *,
.sdgv-sv655 *::before,
.sdgv-sv655 *::after { box-sizing: border-box; }
.sdgv-sv655__main { position: relative; z-index: 1; overflow: clip; }
.sdgv-sv655__heading {
  width: min(100% - 40px, 1040px);
  margin: 0 auto;
  padding: clamp(54px, 8vw, 112px) 0 clamp(32px, 5vw, 64px);
  text-align: center;
}
.sdgv-sv655__eyebrow,
.sdgv-sv655__kicker,
.sdgv-sv655__price-label {
  margin: 0 0 12px;
  color: var(--vora-outline, #59697a);
  font: 700 11px/1.3 var(--vora-sans, sans-serif);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sdgv-sv655__heading h1 {
  max-width: 18ch;
  margin: 0 auto;
  color: var(--vora-on-surface, #172331);
  font: 500 clamp(44px, 7vw, 88px)/.98 var(--vora-serif, Georgia, serif);
  overflow-wrap: anywhere;
}
.sdgv-sv655__lead {
  max-width: 660px;
  margin: 24px auto 0;
  color: var(--vora-on-surface-variant, #435365);
  font: 400 clamp(17px, 2vw, 21px)/1.65 var(--vora-sans, sans-serif);
}
.sdgv-sv655__media {
  position: relative;
  width: min(100% - clamp(28px, 6vw, 96px), 1440px);
  aspect-ratio: 16 / 8.5;
  min-height: 280px;
  max-height: 760px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: var(--sdgv-card-radius, 24px);
  background: linear-gradient(135deg, #dce4e8, #edf0ec);
}
.sdgv-sv655__media img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.sdgv-sv655__media-placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #6a7783;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.7), transparent 35%),
    linear-gradient(135deg, #dbe3e5, #eee9df);
}
.sdgv-sv655__media-placeholder span {
  font: 600 12px/1.2 var(--vora-sans, sans-serif);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sdgv-sv655__layout {
  width: min(100% - 40px, 1180px);
  margin: 0 auto;
  padding: clamp(58px, 8vw, 112px) 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 410px);
  gap: clamp(48px, 8vw, 112px);
  align-items: start;
}
.sdgv-sv655__content { min-width: 0; }
.sdgv-sv655__section + .sdgv-sv655__section,
.sdgv-sv655__terms { margin-top: clamp(44px, 7vw, 76px); }
.sdgv-sv655__section h2,
.sdgv-sv655__purchase h2,
.sdgv-sv655__preview-copy h2,
.sdgv-sv655__related > h2 {
  margin: 0 0 22px;
  color: var(--vora-on-surface, #172331);
  font: 500 clamp(30px, 4vw, 48px)/1.06 var(--vora-serif, Georgia, serif);
  overflow-wrap: anywhere;
}
.sdgv-sv655__purchase h2 { font-size: clamp(28px, 3vw, 38px); }
.sdgv-sv655__body,
.sdgv-sv655__section > p:not(.sdgv-sv655__kicker),
.sdgv-sv655__terms,
.sdgv-sv655__preview-copy > p:not(.sdgv-sv655__kicker) {
  color: var(--vora-on-surface-variant, #435365);
  font: 400 17px/1.75 var(--vora-sans, sans-serif);
}
.sdgv-sv655__body > :first-child { margin-top: 0; }
.sdgv-sv655__body > :last-child { margin-bottom: 0; }
.sdgv-sv655__body img,
.sdgv-sv655__body iframe,
.sdgv-sv655__body table { max-width: 100%; }
.sdgv-sv655__body pre { max-width: 100%; overflow: auto; }
.sdgv-sv655__service-meta { margin: -10px 0 16px !important; font-size: 14px !important; font-weight: 700 !important; }
.sdgv-sv655__facts {
  margin: 0;
  border-top: 1px solid var(--vora-outline-variant, #d7dde2);
}
.sdgv-sv655__facts > div {
  display: grid;
  grid-template-columns: minmax(110px, .35fr) minmax(0, 1fr);
  gap: 24px;
  padding: 19px 0;
  border-bottom: 1px solid var(--vora-outline-variant, #d7dde2);
}
.sdgv-sv655__facts dt {
  color: var(--vora-outline, #59697a);
  font: 700 11px/1.5 var(--vora-sans, sans-serif);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sdgv-sv655__facts dd {
  min-width: 0;
  margin: 0;
  color: var(--vora-on-surface, #172331);
  font: 500 15px/1.55 var(--vora-sans, sans-serif);
  overflow-wrap: anywhere;
}
.sdgv-sv655__terms {
  padding: 0 0 24px;
  border-bottom: 1px solid var(--vora-outline-variant, #d7dde2);
}
.sdgv-sv655__terms summary {
  cursor: pointer;
  color: var(--vora-on-surface, #172331);
  font-weight: 700;
}
.sdgv-sv655__terms[open] summary { margin-bottom: 16px; }
.sdgv-sv655__purchase { min-width: 0; }
.sdgv-sv655__purchase-card {
  position: sticky;
  top: 108px;
  max-height: calc(100vh - 144px);
  overflow: auto;
  padding: clamp(26px, 4vw, 40px);
  border: 1px solid var(--vora-outline-variant, #d7dde2);
  border-radius: var(--sdgv-card-radius, 24px);
  background: color-mix(in srgb, var(--vora-surface, #fff) 94%, white);
  box-shadow: 0 20px 60px rgba(0, 29, 54, .10);
  scrollbar-width: thin;
}
.sdgv-sv655__price-label { margin-top: 26px; margin-bottom: 5px; }
.sdgv-sv655__price {
  margin: 0 0 28px;
  color: var(--vora-on-surface, #172331);
  font: 600 clamp(28px, 4vw, 40px)/1 var(--vora-serif, Georgia, serif);
}
.sdgv-sv655__options { min-width: 0; margin: 0 0 22px; padding: 0; border: 0; }
.sdgv-sv655__options legend,
.sdgv-sv655__amount-field > label {
  display: block;
  margin: 0 0 10px;
  color: var(--vora-on-surface, #172331);
  font: 700 14px/1.4 var(--vora-sans, sans-serif);
}
.sdgv-sv655__option {
  position: relative;
  min-width: 0;
  margin: 9px 0;
  padding: 15px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--vora-outline-variant, #d7dde2);
  border-radius: 14px;
  background: var(--vora-surface, #fff);
  cursor: pointer;
}
.sdgv-sv655__option:has(input:checked) {
  border-color: var(--vora-primary, #001d36);
  box-shadow: inset 0 0 0 1px var(--vora-primary, #001d36);
}
.sdgv-sv655__option input { width: 18px; height: 18px; margin: 0; accent-color: var(--vora-primary, #001d36); }
.sdgv-sv655__option:has(input:focus-visible) { outline: 3px solid color-mix(in srgb, var(--vora-primary, #001d36) 32%, transparent); outline-offset: 3px; }
.sdgv-sv655__option-copy { min-width: 0; display: grid; gap: 3px; }
.sdgv-sv655__option-copy strong,
.sdgv-sv655__option-price { color: var(--vora-on-surface, #172331); font: 700 14px/1.35 var(--vora-sans, sans-serif); overflow-wrap: anywhere; }
.sdgv-sv655__option-copy small { color: var(--vora-outline, #59697a); font: 500 12px/1.35 var(--vora-sans, sans-serif); }
.sdgv-sv655__option-price { white-space: nowrap; }
.sdgv-sv655__amount-field { margin-bottom: 22px; }
.sdgv-sv655__amount-field input {
  width: 100%;
  min-height: 50px;
  padding: 11px 14px;
  border: 1px solid var(--vora-outline, #59697a);
  border-radius: 10px;
  background: #fff;
  color: #172331;
  font: 700 18px/1 var(--vora-sans, sans-serif);
}
.sdgv-sv655__amount-field input[aria-invalid="true"] { border-color: #ba1a1a; box-shadow: 0 0 0 1px #ba1a1a; }
.sdgv-sv655__amount-field input:focus-visible,
.sdgv-sv655__add:focus-visible,
.sdgv-sv655__basket-link:focus-visible,
.sdgv-sv655__related a:focus-visible,
.sdgv-sv655__terms summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--vora-primary, #001d36) 36%, transparent); outline-offset: 3px; }
.sdgv-sv655__help,
.sdgv-sv655__error { margin: 8px 0 0; font: 500 12px/1.45 var(--vora-sans, sans-serif); }
.sdgv-sv655__help { color: var(--vora-outline, #59697a); }
.sdgv-sv655__error { color: #ba1a1a; }
.sdgv-sv655__unavailable { padding: 16px; border-radius: 12px; background: #f2ece9; color: #6f2c22; font: 600 14px/1.5 var(--vora-sans, sans-serif); }
.sdgv-sv655__add {
  width: 100%;
  min-height: 52px;
  padding: 14px 18px;
  border: 0;
  border-radius: 999px;
  background: var(--vora-primary, #001d36);
  color: var(--vora-on-primary, #fff);
  font: 800 12px/1.2 var(--vora-sans, sans-serif);
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
}
.sdgv-sv655__add:disabled { cursor: not-allowed; opacity: .56; }
.sdgv-sv655__basket-link {
  min-height: 44px;
  margin-top: 10px;
  padding: 10px 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--vora-on-surface, #172331);
  font: 700 13px/1.3 var(--vora-sans, sans-serif);
  text-decoration: none;
}
.sdgv-sv655__sr-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.sdgv-sv655__preview-section {
  padding: clamp(60px, 9vw, 120px) max(20px, calc((100vw - 1180px) / 2));
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(420px, 1.28fr);
  gap: clamp(42px, 8vw, 108px);
  align-items: center;
  background: var(--vora-surface-container-low, #f0f1ee);
}
.sdgv-sv655__preview-safety { padding: 14px 16px; border-left: 3px solid var(--vora-primary, #001d36); background: rgba(255,255,255,.55); font-size: 14px !important; }
.sdgv-sv655__preview-frame {
  width: min(100%, 560px);
  justify-self: end;
  overflow: hidden;
  border-radius: 24px;
  background: #050505;
  box-shadow: 0 28px 80px rgba(0,29,54,.22);
}
.sdgv-sv655__preview-frame > .sdgv-vora-card-preview {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 700 / 330 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.sdgv-sv655__related { width: min(100% - 40px, 1180px); margin: 0 auto; padding: clamp(70px, 9vw, 120px) 0; }
.sdgv-sv655__related > h2 { text-align: center; }
.sdgv-sv655__related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.sdgv-sv655__related-card a { display: block; color: inherit; text-decoration: none; }
.sdgv-sv655__related-media { aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; border-radius: 16px; background: linear-gradient(135deg, #dbe3e5, #eee9df); color: #6a7783; font: 700 11px/1.2 var(--vora-sans, sans-serif); letter-spacing: .12em; text-transform: uppercase; }
.sdgv-sv655__related-media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.sdgv-sv655__related-card a:hover img { transform: scale(1.025); }
.sdgv-sv655__related-card h3 { margin: 17px 0 5px; color: var(--vora-on-surface, #172331); font: 600 25px/1.1 var(--vora-serif, Georgia, serif); }
.sdgv-sv655__related-card p { margin: 0; color: var(--vora-outline, #59697a); font: 700 12px/1.4 var(--vora-sans, sans-serif); letter-spacing: .08em; text-transform: uppercase; }
.sdgv-sv655__preview-notice {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 11px 20px;
  display: flex;
  justify-content: center;
  gap: 12px;
  background: #fff4d6;
  border-bottom: 1px solid #d6a84f;
  color: #4d3a10;
  font: 600 13px/1.45 var(--vora-sans, sans-serif);
  text-align: center;
}
.sdgv-sv655--preview .sdgv-sv655__heading { padding-top: 48px; }

@media (max-width: 1040px) {
  .sdgv-sv655__layout { grid-template-columns: 1fr; gap: 58px; }
  .sdgv-sv655__purchase { width: min(100%, 680px); }
  .sdgv-sv655__purchase-card { position: static; max-height: none; overflow: visible; }
  .sdgv-sv655__preview-section { grid-template-columns: 1fr; }
  .sdgv-sv655__preview-copy { max-width: 680px; }
  .sdgv-sv655__preview-frame { justify-self: start; }
}
@media (max-width: 760px) {
  .sdgv-sv655__heading,
  .sdgv-sv655__layout,
  .sdgv-sv655__related { width: min(100% - 28px, 1180px); }
  .sdgv-sv655__media { width: calc(100% - 28px); min-height: 230px; aspect-ratio: 4 / 3; border-radius: 18px; }
  .sdgv-sv655__facts > div { grid-template-columns: 1fr; gap: 5px; }
  .sdgv-sv655__preview-section { padding-left: 14px; padding-right: 14px; }
  .sdgv-sv655__preview-frame { width: 100%; border-radius: 18px; }
  .sdgv-sv655__related-grid { grid-template-columns: 1fr; gap: 36px; }
  .sdgv-sv655__preview-notice { position: relative; flex-direction: column; gap: 2px; }
}
@media (max-width: 420px) {
  .sdgv-sv655__heading h1 { font-size: 40px; }
  .sdgv-sv655__purchase-card { padding: 22px 16px; border-radius: 18px; }
  .sdgv-sv655__option { grid-template-columns: 20px minmax(0, 1fr); }
  .sdgv-sv655__option-price { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .sdgv-sv655__related-media img { transition: none; }
}

/* Touch targets: eliminate 300ms delay */
.sdgv-chatbot__toggle,
.sdgv-chatbot__send,
.sdgv-chatbot__add,
.sdgv-chatbot__chip,
.sdgv-chatbot__close,
.sdgv-chatbot__stack-arrow,
.sdgv-chatbot__journey-link {
  touch-action: manipulation;
}

/* ── Toggle button ── */
.sdgv-chatbot__toggle {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border-radius: var(--sdgv-chatbot-button-radius, 999px);
  background: var(--sdgv-chatbot-button-bg, #001d36);
  color: var(--sdgv-chatbot-button-text, #fff);
  border: none;
  box-shadow: 0 8px 32px rgba(0,29,54,0.32), 0 2px 8px rgba(0,29,54,0.16);
  padding: 13px 20px 13px 16px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  max-width: 100%;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  animation: sdgv-chatbot-arrive 0.45s cubic-bezier(0.34, 1.4, 0.64, 1) 0.6s backwards;
}
.sdgv-chatbot__toggle:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(0,29,54,0.38), 0 4px 12px rgba(0,29,54,0.2);
}
.sdgv-chatbot__toggle-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.sdgv-chatbot__toggle-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@keyframes sdgv-chatbot-arrive {
  from { opacity: 0; transform: translateY(14px) scale(0.92); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
/* Hide the launcher while the panel is open — the panel is the focus */
.sdgv-chatbot[data-open="1"] .sdgv-chatbot__launcher,
.sdgv-chatbot[data-open="1"] .sdgv-chatbot__toggle {
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
}

/* ── Panel ── */
.sdgv-chatbot__panel {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(360px, calc(100vw - 24px));
  max-height: min(620px, calc(100dvh - 120px));
  display: none;
  flex-direction: column;
  overflow: hidden;
  border-radius: 18px;
  background: var(--sdgv-chatbot-panel-bg, #fff);
  border: 1px solid rgba(0,29,54,0.08);
  box-shadow: 0 32px 80px rgba(0,29,54,0.22), 0 8px 24px rgba(0,29,54,0.1);
  transform-origin: bottom right;
}
.sdgv-chatbot[data-open="1"] .sdgv-chatbot__panel {
  display: flex;
  animation: sdgv-chatbot-pop 0.28s cubic-bezier(0.34, 1.3, 0.64, 1);
}
@keyframes sdgv-chatbot-pop {
  from { opacity: 0; transform: translateY(12px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ── Header ── */
.sdgv-chatbot__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: var(--sdgv-chatbot-header-bg, #001d36);
  color: var(--sdgv-chatbot-header-text, #fff);
  flex-shrink: 0;
}
.sdgv-chatbot__head-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sdgv-chatbot__avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--sdgv-chatbot-header-text, #fff) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--sdgv-chatbot-header-text, #fff) 18%, transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sdgv-chatbot__avatar svg {
  width: 18px;
  height: 18px;
  stroke: var(--sdgv-chatbot-header-text, rgba(255,255,255,0.9));
}
.sdgv-chatbot__head-title {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sdgv-chatbot-header-text, #fff);
}
.sdgv-chatbot__head-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: color-mix(in srgb, var(--sdgv-chatbot-header-text, #fff) 58%, transparent);
  margin-top: 1px;
}
.sdgv-chatbot__status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 0 0 rgba(52,211,153,0.5);
  animation: sdgv-chatbot-pulse 2.4s ease-out infinite;
  flex-shrink: 0;
}
@keyframes sdgv-chatbot-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(52,211,153,0.45); }
  70%  { box-shadow: 0 0 0 6px rgba(52,211,153,0); }
  100% { box-shadow: 0 0 0 0 rgba(52,211,153,0); }
}
.sdgv-chatbot__close {
  border: 0;
  background: rgba(0,0,0,0.06);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s;
  color: #171717;
  padding: 0;
}
.sdgv-chatbot__close:hover { background: rgba(0,0,0,0.12); }
.sdgv-chatbot__close svg { width: 16px; height: 16px; stroke: currentColor; }

/* ── Messages ── */
.sdgv-chatbot__messages {
  padding: 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fff) 92%, #001d36 8%);
}
.sdgv-chatbot__msg {
  max-width: 88%;
  border-radius: 16px;
  padding: 11px 14px;
  font-size: 13.5px;
  line-height: 1.55;
  animation: sdgv-chatbot-msg-in 0.22s ease-out;
}
@keyframes sdgv-chatbot-msg-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.sdgv-chatbot__msg--bot {
  align-self: flex-start;
  background: var(--sdgv-chatbot-bot-bg, #fff);
  color: var(--sdgv-chatbot-bot-text, #001d36);
  border: 1px solid rgba(0,29,54,0.08);
  border-bottom-left-radius: 4px;
  box-shadow: 0 1px 4px rgba(0,29,54,0.06);
}
.sdgv-chatbot__msg--user {
  align-self: flex-end;
  background: var(--sdgv-chatbot-user-bg, #001d36);
  color: var(--sdgv-chatbot-user-text, #fff);
  border-bottom-right-radius: 4px;
}
.sdgv-chatbot__msg--rich {
  width: 100%;
  max-width: 100%;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}
.sdgv-chatbot__msg--rich > p {
  display: inline-block;
  margin: 0;
  border-radius: 16px;
  border-bottom-left-radius: 4px;
  padding: 11px 14px;
  background: var(--sdgv-chatbot-bot-bg, #fff);
  color: var(--sdgv-chatbot-bot-text, #001d36);
  border: 1px solid rgba(0,29,54,0.08);
  box-shadow: 0 1px 4px rgba(0,29,54,0.06);
  font-size: 13.5px;
  line-height: 1.55;
}

/* ── Typing indicator ── */
.sdgv-chatbot__typing {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 16px;
  border-bottom-left-radius: 4px;
  padding: 13px 16px;
  background: var(--sdgv-chatbot-bot-bg, #fff);
  border: 1px solid rgba(0,29,54,0.08);
  box-shadow: 0 1px 4px rgba(0,29,54,0.06);
}
.sdgv-chatbot__typing i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #001d36) 45%, transparent);
  animation: sdgv-chatbot-typing 1.1s ease-in-out infinite;
}
.sdgv-chatbot__typing i:nth-child(2) { animation-delay: 0.15s; }
.sdgv-chatbot__typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes sdgv-chatbot-typing {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
  30%           { transform: translateY(-4px); opacity: 1; }
}

/* ── Quick-reply chips ── */
.sdgv-chatbot__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-self: flex-start;
  max-width: 95%;
}
.sdgv-chatbot__chip {
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 35%, transparent);
  background: var(--sdgv-chatbot-panel-bg, #fff);
  color: var(--sdgv-chatbot-accent, #001d36);
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.15s;
}
.sdgv-chatbot__chip:hover {
  background: var(--sdgv-chatbot-accent, #001d36);
  border-color: var(--sdgv-chatbot-accent, #001d36);
  color: var(--sdgv-chatbot-panel-bg, #fff);
  transform: translateY(-1px);
}

/* ── Input row ── */
.sdgv-chatbot__form {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-top: 1px solid rgba(0,29,54,0.08);
  background: var(--sdgv-chatbot-panel-bg, #fff);
  flex-shrink: 0;
}
.sdgv-chatbot__input {
  flex: 1;
  border: 1.5px solid rgba(0,29,54,0.14);
  border-radius: 999px;
  padding: 11px 16px;
  font-size: 16px; /* 16px prevents iOS auto-zoom on focus — do not reduce */
  font-family: inherit;
  color: var(--sdgv-chatbot-bot-text, #001d36);
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fff) 94%, #001d36 6%);
  outline: none;
  transition: border-color 0.15s;
  min-width: 0;
}
.sdgv-chatbot__input:focus {
  border-color: color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 55%, transparent);
  background: var(--sdgv-chatbot-panel-bg, #fff);
}
.sdgv-chatbot__input::placeholder { color: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #001d36) 38%, transparent); }

/* ── Send button: pill with arrow icon ── */
.sdgv-chatbot__send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 999px;
  background: var(--sdgv-chatbot-action-bg, #001d36);
  color: var(--sdgv-chatbot-action-text, #fff);
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  cursor: pointer;
  transition: filter 0.15s, transform 0.15s;
  padding: 0;
}
.sdgv-chatbot__send:hover { filter: brightness(1.18); transform: scale(1.06); }
.sdgv-chatbot__send:active { transform: scale(0.96); }
.sdgv-chatbot__send svg { width: 16px; height: 16px; stroke: var(--sdgv-chatbot-action-text, #fff); }

/* ── Rich result cards ── */
.sdgv-chatbot__add,
.sdgv-chatbot__checkout,
.sdgv-chatbot__mini-cta,
.sdgv-chatbot__stack-arrow {
  display: inline-flex;
  border: 0;
  border-radius: 999px;
  background: var(--sdgv-chatbot-action-bg, #001d36);
  color: var(--sdgv-chatbot-action-text, #fff);
  padding: 9px 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: filter 0.15s, transform 0.15s;
}
.sdgv-chatbot__add:hover,
.sdgv-chatbot__checkout:hover,
.sdgv-chatbot__mini-cta:hover,
.sdgv-chatbot__stack-arrow:hover { filter: brightness(1.18); transform: translateY(-1px); }

.sdgv-chatbot__vouchers,
.sdgv-chatbot__slots {
  display: grid;
  gap: 10px;
  margin-top: 8px;
}
.sdgv-chatbot__voucher,
.sdgv-chatbot__slot {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(0,29,54,0.08);
  border-radius: 14px;
  background: var(--sdgv-chatbot-panel-bg, #fff);
  box-shadow: 0 1px 4px rgba(0,29,54,0.05);
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.sdgv-chatbot__voucher:hover,
.sdgv-chatbot__slot:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,29,54,0.12);
}
.sdgv-chatbot__slot { display: block; }
.sdgv-chatbot__voucher img {
  width: 68px;
  height: 68px;
  border-radius: 10px;
  object-fit: cover;
}
.sdgv-chatbot__voucher strong,
.sdgv-chatbot__slot strong {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--sdgv-chatbot-bot-text, #001d36);
}
.sdgv-chatbot__voucher span,
.sdgv-chatbot__slot span {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 700;
  color: var(--sdgv-chatbot-accent, #001d36);
}
.sdgv-chatbot__voucher small,
.sdgv-chatbot__slot small {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #001d36) 55%, transparent);
}
.sdgv-chatbot__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.sdgv-chatbot__actions a {
  font-size: 11px;
  font-weight: 700;
  color: var(--sdgv-chatbot-accent, #001d36);
  text-decoration: underline;
}
.sdgv-chatbot__checkout {
  display: inline-flex;
  margin-top: 10px;
  min-width: 160px;
  text-align: center;
}

.sdgv-chatbot__voucher-stack {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-top: 10px;
  padding: 10px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fff) 94%, var(--sdgv-chatbot-accent, #001d36) 6%);
  border: 1px solid color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 15%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 65%, transparent);
  overflow: hidden;
}
.sdgv-chatbot__stack-head,
.sdgv-chatbot__stack-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.sdgv-chatbot__stack-head > span {
  min-width: 0;
  color: var(--sdgv-chatbot-bot-text, #001d36);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}
.sdgv-chatbot__stack-arrows {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.sdgv-chatbot__stack-arrow {
  width: 30px;
  height: 30px;
  min-height: 30px;
  min-width: 30px;
  padding: 0;
  border-radius: 999px;
}
.sdgv-chatbot__stack-arrow svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sdgv-chatbot__stack-track {
  position: relative;
  height: 164px;
  margin-top: 10px;
  margin-right: 42px;
  isolation: isolate;
}
.sdgv-chatbot__voucher-card {
  box-sizing: border-box;
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 64px minmax(0,1fr);
  gap: 10px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 10px;
  border: 1px solid color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 12%, transparent);
  border-radius: 14px;
  background: var(--sdgv-chatbot-panel-bg, #fff);
  box-shadow: 0 10px 24px rgba(0,29,54,0.08);
  cursor: pointer;
  opacity: var(--sdgv-stack-opacity, 1);
  transform: translate(var(--sdgv-stack-x, 0), var(--sdgv-stack-y, 0)) scale(var(--sdgv-stack-scale, 1));
  transform-origin: left center;
  transition: opacity 0.24s ease, transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
  overflow: hidden;
}
.sdgv-chatbot__voucher-card.is-active {
  cursor: default;
  border-color: color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 34%, transparent);
  box-shadow: 0 16px 34px rgba(0,29,54,0.14);
}
.sdgv-chatbot__voucher-card:not(.is-active) .sdgv-chatbot__actions {
  pointer-events: none;
  opacity: 0;
}
.sdgv-chatbot__voucher-card img,
.sdgv-chatbot__voucher-card-mark {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  object-fit: cover;
  background: color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 12%, var(--sdgv-chatbot-panel-bg, #fff));
  flex-shrink: 0;
}
.sdgv-chatbot__voucher-card-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--sdgv-chatbot-accent, #001d36);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sdgv-chatbot__voucher-card-copy {
  min-width: 0;
}
.sdgv-chatbot__voucher-card strong {
  display: block;
  overflow: hidden;
  color: var(--sdgv-chatbot-bot-text, #001d36);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sdgv-chatbot__voucher-card span {
  display: block;
  margin-top: 3px;
  color: var(--sdgv-chatbot-accent, #001d36);
  font-size: 12px;
  font-weight: 800;
}
.sdgv-chatbot__voucher-card small {
  display: -webkit-box;
  margin-top: 4px;
  overflow: hidden;
  color: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #001d36) 58%, transparent);
  font-size: 11px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.sdgv-chatbot__stack-count {
  margin-top: 8px;
  color: var(--sdgv-chatbot-accent, #001d36);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sdgv-chatbot__journey {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 2px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sdgv-chatbot__journey::-webkit-scrollbar { display: none; }
.sdgv-chatbot__journey-link {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  flex: 0 0 auto;
  padding: 8px 11px;
  border: 1px solid color-mix(in srgb, var(--sdgv-chatbot-accent, #001d36) 32%, transparent);
  border-radius: 999px;
  color: var(--sdgv-chatbot-accent, #001d36);
  background: var(--sdgv-chatbot-panel-bg, #fff);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  transition: filter 0.15s, transform 0.15s, border-color 0.15s;
}
.sdgv-chatbot__mini-cta {
  border-color: var(--sdgv-chatbot-action-bg, #001d36);
  background: var(--sdgv-chatbot-action-bg, #001d36);
  color: var(--sdgv-chatbot-action-text, #fff);
}

/* ── Accessibility: respect reduced-motion preference ── */
@media (prefers-reduced-motion: reduce) {
  .sdgv-chatbot__toggle,
  .sdgv-chatbot[data-open="1"] .sdgv-chatbot__panel,
  .sdgv-chatbot__msg,
  .sdgv-chatbot__voucher-card {
    animation: none;
    transition: none;
  }
  .sdgv-chatbot__status-dot { animation: none; }
  .sdgv-chatbot__messages { scroll-behavior: auto; }
}

/* ── Mobile ── */
@media (max-width: 640px) {
  .sdgv-chatbot {
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    left: auto;
    max-width: calc(100vw - 20px);
  }
  .sdgv-chatbot__panel {
    position: fixed;
    inset: auto 10px calc(12px + env(safe-area-inset-bottom, 0px)) 10px;
    width: auto;
    max-width: calc(100vw - 20px);
    max-height: calc(100dvh - 96px - env(safe-area-inset-bottom, 0px));
  }
  .sdgv-chatbot__send,
  .sdgv-chatbot__add {
    min-height: 44px;
    min-width: 44px;
  }
  .sdgv-chatbot__send { width: 44px; height: 44px; }
  .sdgv-chatbot__close {
    width: 40px;
    height: 40px;
  }
  .sdgv-chatbot__chip { padding: 9px 15px; }
  .sdgv-chatbot__stack-track {
    height: 172px;
    margin-right: 32px;
  }
  .sdgv-chatbot__voucher-card {
    grid-template-columns: 58px minmax(0,1fr);
  }
  .sdgv-chatbot__voucher-card img,
  .sdgv-chatbot__voucher-card-mark {
    width: 58px;
    height: 58px;
  }
  .sdgv-chatbot__journey-link {
    min-height: 36px;
    padding-inline: 10px;
  }
}

/* ── v2.9.5 Gift Concierge replacement ───────────────────── */
.sdgv-gift-concierge,
.sdgv-gift-concierge * {
  box-sizing: border-box;
}
.sdgv-gift-concierge {
  right: 24px;
  bottom: 24px;
  max-width: calc(100vw - 24px);
  font-family: var(--sdgv-chatbot-font-family, var(--vora-sans));
}
.sdgv-gift-concierge .sdgv-chatbot__launcher {
  display: inline-flex;
  align-items: center;
  overflow: visible;
  border: 1px solid rgba(255,255,255,.1);
  background: var(--sdgv-chatbot-button-bg, #071225);
  color: var(--sdgv-chatbot-button-text, #fff);
  border-radius: var(--sdgv-chatbot-button-radius, 999px);
  box-shadow: 0 18px 42px color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 32%, transparent), 0 8px 18px rgba(7,18,37,.22);
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.sdgv-gift-concierge .sdgv-chatbot__launcher:hover {
  transform: none;
  /* Keep the launcher in its configured colour on hover. */
  background: var(--sdgv-chatbot-button-hover-bg, var(--sdgv-chatbot-button-bg, #071225)) !important;
  color: var(--sdgv-chatbot-button-text, #fff);
  box-shadow: 0 18px 42px color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 32%, transparent), 0 8px 18px rgba(7,18,37,.22);
}
.sdgv-gift-concierge .sdgv-chatbot__toggle,
.sdgv-gift-concierge .sdgv-chatbot__basket {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  box-shadow: none;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1;
  text-transform: none;
}
.sdgv-gift-concierge .sdgv-chatbot__toggle {
  display: inline-flex;
  align-items: center;
  min-height: 50px;
  border-radius: var(--sdgv-chatbot-button-radius, 999px);
  padding: 0 24px;
}
.sdgv-gift-concierge .sdgv-chatbot__toggle:hover,
.sdgv-gift-concierge .sdgv-chatbot__basket:hover {
  transform: none;
  box-shadow: none;
}
.sdgv-gift-concierge .sdgv-chatbot__basket {
  position: relative;
  display: none;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  min-height: 50px;
  padding: 0 14px 0 18px;
  border-right: 1px solid rgba(255,255,255,.18);
  border-radius: var(--sdgv-chatbot-button-radius, 999px) 0 0 var(--sdgv-chatbot-button-radius, 999px);
  color: #fff;
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header {
  min-width: 44px;
  min-height: 44px;
  margin-right: 2px;
  padding: 0;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 999px;
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fff) 88%, var(--sdgv-chatbot-header-text, #0f172a) 12%);
  color: var(--sdgv-chatbot-header-text, #0f172a);
}
.sdgv-gift-concierge .sdgv-chatbot__basket.is-visible {
  display: inline-flex;
}
.sdgv-gift-concierge .sdgv-chatbot__basket[hidden] {
  display: none !important;
}
.sdgv-gift-concierge .sdgv-chatbot__basket-icon {
  display: block;
  width: 22px;
  height: 22px;
  color: currentColor;
  overflow: visible;
}
.sdgv-gift-concierge .sdgv-chatbot__basket-count {
  position: absolute;
  top: 8px;
  right: 7px;
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border: 1px solid rgba(7,18,37,.1);
  border-radius: 999px;
  background: #fff;
  color: #071225;
  font-family: var(--sdgv-chatbot-font-family, var(--vora-sans));
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  box-shadow: 0 2px 8px rgba(7,18,37,.24);
}
.sdgv-gift-concierge .sdgv-chatbot__basket.is-visible .sdgv-chatbot__basket-count {
  display: flex;
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header .sdgv-chatbot__basket-count {
  top: 1px;
  right: 1px;
  background: var(--sdgv-chatbot-accent, #6d5df4);
  color: #fff;
}
.sdgv-gift-concierge .sdgv-chatbot__toggle--pulse {
  animation: sdgv-chatbot-basket-pulse .48s cubic-bezier(.34,1.56,.64,1);
}
.sdgv-gift-concierge .sdgv-chatbot__toggle-label {
  display: block;
  color: inherit;
  line-height: 1.1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sdgv-gift-concierge .sdgv-chatbot__toggle-icon {
  display: none;
}
@keyframes sdgv-chatbot-basket-pulse {
  0%   { transform: translateY(0) scale(1); }
  45%  { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
.sdgv-gift-concierge .sdgv-chatbot__panel {
  position: relative;
  width: min(440px, calc(100vw - 28px));
  height: min(680px, calc(100dvh - 84px));
  max-height: min(680px, calc(100dvh - 84px));
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 28px;
  background: var(--sdgv-chatbot-panel-bg, #fff);
  box-shadow: 0 30px 86px rgba(15,23,42,.23), 0 8px 24px rgba(15,23,42,.08);
}
.sdgv-gift-concierge .sdgv-chatbot__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid rgba(15,23,42,.08);
  background: var(--sdgv-chatbot-panel-bg, #fff);
  color: var(--sdgv-chatbot-header-text, #0f172a);
}
.sdgv-gift-concierge .sdgv-chatbot__head-identity {
  gap: 0;
  min-width: 0;
}
.sdgv-gift-concierge .sdgv-chatbot__avatar {
  display: none;
}
.sdgv-gift-concierge .sdgv-chatbot__avatar svg {
  stroke: currentColor;
}
.sdgv-gift-concierge .sdgv-chatbot__head-title {
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 13px;
  letter-spacing: .08em;
}
.sdgv-gift-concierge .sdgv-chatbot__head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 14px;
}
.sdgv-gift-concierge .sdgv-chatbot__head-status {
  display: block;
  color: color-mix(in srgb, var(--sdgv-chatbot-header-text, #0f172a) 58%, transparent);
  font-size: 12px;
  line-height: 1.35;
}
.sdgv-gift-concierge .sdgv-chatbot__close {
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: #171717;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
.sdgv-gift-concierge .sdgv-chatbot__close:hover {
  background: transparent;
  color: #171717;
}
.sdgv-gift-concierge .sdgv-chatbot__close svg {
  width: 19px;
  height: 19px;
  stroke: currentColor;
}
.sdgv-mini-basket__backdrop {
  position: absolute;
  inset: 0;
  z-index: 35;
  background: rgba(15,23,42,.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity .24s ease;
}
.sdgv-chatbot[data-basket-open="1"] .sdgv-mini-basket__backdrop {
  opacity: 1;
  pointer-events: auto;
}
.sdgv-mini-basket {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 40;
  display: flex;
  width: min(360px, 100%);
  height: 100%;
  max-height: inherit;
  flex-direction: column;
  overflow: hidden;
  border-left: 1px solid rgba(15,23,42,.1);
  background: var(--sdgv-chatbot-panel-bg, #fff);
  color: var(--sdgv-chatbot-bot-text, #172033);
  box-shadow: -18px 0 46px rgba(15,23,42,.16);
  transform: translateX(102%);
  transition: transform .28s cubic-bezier(.22,.8,.28,1);
}
.sdgv-chatbot[data-basket-open="1"] .sdgv-mini-basket {
  transform: translateX(0);
}
.sdgv-mini-basket[aria-hidden="true"] {
  pointer-events: none;
}
.sdgv-mini-basket__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 64px;
  padding: 18px 20px;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.sdgv-mini-basket__head h3 {
  margin: 0;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 18px;
  font-weight: 850;
  line-height: 1.15;
}
.sdgv-mini-basket__close {
  display: grid;
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  cursor: pointer;
}
.sdgv-mini-basket__close svg,
.sdgv-mini-basket__remove svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sdgv-mini-basket__status {
  display: none;
  margin: 14px 18px 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 10%, #fff);
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 13px;
  line-height: 1.35;
}
.sdgv-mini-basket__status.is-visible {
  display: block;
}
.sdgv-mini-basket__items {
  flex: 1;
  overflow: auto;
  padding: 18px 18px 12px;
}
.sdgv-mini-basket__item {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.sdgv-mini-basket__image,
.sdgv-mini-basket__placeholder {
  display: grid;
  width: 76px;
  height: 76px;
  overflow: hidden;
  place-items: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 12%, #eef0f4);
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 11px;
  font-weight: 850;
}
.sdgv-mini-basket__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sdgv-mini-basket__copy {
  min-width: 0;
}
.sdgv-mini-basket__copy strong {
  display: block;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.2;
}
.sdgv-mini-basket__variant,
.sdgv-mini-basket__price {
  display: block;
  margin-top: 5px;
  color: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #172033) 66%, transparent);
  font-size: 12px;
  line-height: 1.3;
}
.sdgv-mini-basket__error {
  display: block;
  margin-top: 7px;
  color: #ba1a1a;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}
.sdgv-mini-basket__qty {
  display: inline-grid;
  grid-template-columns: 30px 38px 30px;
  align-items: center;
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 999px;
}
.sdgv-mini-basket__qty button,
.sdgv-mini-basket__qty input {
  width: 100%;
  height: 30px;
  border: 0;
  background: transparent;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  text-align: center;
}
.sdgv-mini-basket__qty button {
  cursor: pointer;
  font-size: 17px;
}
.sdgv-mini-basket__qty input {
  border-inline: 1px solid rgba(15,23,42,.1);
  font-size: 13px;
  font-weight: 750;
  -moz-appearance: textfield;
}
.sdgv-mini-basket__qty input::-webkit-outer-spin-button,
.sdgv-mini-basket__qty input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
.sdgv-mini-basket__line {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.sdgv-mini-basket__line strong {
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 13px;
  white-space: nowrap;
}
.sdgv-mini-basket__remove {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: color-mix(in srgb, var(--sdgv-chatbot-header-text, #0f172a) 56%, transparent);
  cursor: pointer;
}
.sdgv-mini-basket__empty {
  display: grid;
  min-height: 220px;
  place-items: center;
  align-content: center;
  gap: 8px;
  text-align: center;
}
.sdgv-mini-basket__empty strong {
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 18px;
}
.sdgv-mini-basket__empty span {
  color: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #172033) 62%, transparent);
  font-size: 13px;
}
.sdgv-mini-basket__footer {
  flex: 0 0 auto;
  padding: 16px 18px 18px;
  border-top: 1px solid rgba(15,23,42,.08);
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fff) 96%, #000 4%);
}
.sdgv-mini-basket__subtotal {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 14px;
}
.sdgv-mini-basket__primary,
.sdgv-mini-basket__secondary {
  display: inline-flex;
  width: 100%;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 850;
  text-decoration: none;
}
.sdgv-mini-basket__primary {
  background: var(--sdgv-chatbot-action-bg, #6d5df4);
  color: var(--sdgv-chatbot-action-text, #fff);
}
.sdgv-mini-basket__secondary {
  margin-top: 10px;
  background: transparent;
  color: var(--sdgv-chatbot-accent, #6d5df4);
}
.sdgv-concierge__progress {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 18px 66px 0;
}
.sdgv-concierge__progress span {
  position: relative;
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(15,23,42,.1);
}
.sdgv-concierge__progress span::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--sdgv-chatbot-accent, #6d5df4);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .28s ease;
}
.sdgv-concierge__progress span.is-active::after {
  transform: scaleX(1);
}
.sdgv-concierge__body {
  flex: 1;
  overflow: auto;
  padding: 0 22px 22px;
  color: var(--sdgv-chatbot-bot-text, #172033);
}
.sdgv-concierge__eyebrow {
  margin: 18px 0 0 !important;
  color: var(--sdgv-chatbot-accent, #6d5df4) !important;
  font-size: 11px !important;
  font-weight: 800;
  letter-spacing: .18em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}
.sdgv-concierge__question {
  margin: 12px auto 0;
  max-width: 340px;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-family: inherit;
  font-size: 22px;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.2;
  text-align: center;
}
.sdgv-concierge__stack {
  position: relative;
  height: 236px;
  margin-top: 20px;
  isolation: isolate;
}
.sdgv-concierge__scene {
  position: absolute;
  inset: 0 20px;
  z-index: 0;
  overflow: hidden;
  border-radius: var(--sdgv-chatbot-card-radius, 34px);
  background:
    radial-gradient(circle at 50% 48%, color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 14%, transparent), transparent 44%),
    linear-gradient(90deg, transparent, rgba(15,23,42,.035), transparent);
  opacity: .95;
  pointer-events: none;
}
.sdgv-concierge__scene::before,
.sdgv-concierge__scene::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 42%, transparent), transparent);
}
.sdgv-concierge__scene::before { top: 24px; }
.sdgv-concierge__scene::after { bottom: 24px; }
.sdgv-concierge__track {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  perspective: 1200px;
}

.sdgv-concierge__option.is-selected {
  transition: transform var(--vora-transition), opacity var(--vora-transition), box-shadow var(--vora-transition);
}
.sdgv-concierge__option.is-selected:hover {
  transform: translateY(-5px);
}
.sdgv-enter {
  animation: sdgv-enter var(--vora-motion-slow, 400ms) var(--vora-ease, ease) both;
  animation-delay: var(--sdgv-enter-delay, 0ms);
}
@keyframes sdgv-enter {
  from { opacity: 0; translate: 0 .75rem; }
  to { opacity: 1; translate: 0 0; }
}
.sdgv-concierge__option {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  display: flex;
  width: 172px;
  height: 200px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 34px;
  background: var(--sdgv-chatbot-bot-bg, #fff);
  color: var(--sdgv-chatbot-bot-text, #172033);
  box-shadow: 0 18px 38px rgba(15,23,42,.12);
  cursor: pointer;
  opacity: var(--sdgv-option-opacity, 1);
  padding: 16px;
  text-align: center;
  transform-style: preserve-3d;
  transform: translateX(calc(var(--sdgv-option-offset, 0) * 118px)) rotateY(calc(var(--sdgv-option-offset, 0) * -6deg)) scale(var(--sdgv-option-scale, 1));
  transition: transform .34s cubic-bezier(.2,.82,.28,1), opacity .24s ease, background .24s ease, color .24s ease, box-shadow .24s ease;
  z-index: var(--sdgv-option-z, 1);
}
.sdgv-concierge__option::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(0,0,0,.04)), radial-gradient(circle at 34% 12%, rgba(255,255,255,.24), transparent 38%);
  opacity: .55;
  pointer-events: none;
}
.sdgv-concierge__option-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  opacity: .2;
  filter: saturate(.92) contrast(1.05);
}
.sdgv-concierge__option.is-selected .sdgv-concierge__option-image {
  opacity: .28;
}
.sdgv-concierge__option > :not(.sdgv-concierge__option-image) {
  position: relative;
  z-index: 1;
  transform: translateZ(18px);
}
.sdgv-concierge__option.is-selected {
  border-color: rgba(255,255,255,.08);
  background: var(--sdgv-chatbot-user-bg, #071225);
  color: var(--sdgv-chatbot-user-text, #fff);
  box-shadow: 0 30px 62px rgba(15,23,42,.38), inset 0 1px 0 rgba(255,255,255,.08);
  cursor: default;
}
.sdgv-concierge__option-icon {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sdgv-chatbot-accent, #6d5df4) 12%, #fff);
  color: #9b7135;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}
.sdgv-concierge__option.is-selected .sdgv-concierge__option-icon {
  background: rgba(255,255,255,.1);
  color: #f3c970;
}
.sdgv-concierge__option-icon svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sdgv-concierge__option strong {
  display: block;
  margin-top: 14px;
  max-width: 100%;
  color: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.15;
}
.sdgv-concierge__option small {
  display: block;
  margin-top: 8px;
  color: currentColor;
  font-size: 12px;
  line-height: 1.45;
  opacity: .72;
}
.sdgv-concierge__arrow {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  top: 50%;
  z-index: 25;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--sdgv-chatbot-arrow-color, var(--sdgv-chatbot-header-text, #0f172a));
  box-shadow: none;
  cursor: pointer;
  transform: translateY(-50%);
  transition: transform .18s ease, opacity .18s ease;
}
.sdgv-concierge__arrow:hover {
  color: var(--sdgv-chatbot-arrow-color, var(--sdgv-chatbot-header-text, #0f172a));
  opacity: .72;
  transform: translateY(calc(-50% - 2px));
}
.sdgv-concierge__arrow--prev { left: -12px; }
.sdgv-concierge__arrow--next { right: -12px; }
.sdgv-concierge__arrow svg,
.sdgv-concierge__continue svg,
.sdgv-concierge__back svg,
.sdgv-concierge__view-all svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sdgv-concierge__arrow svg {
  width: 38px;
  height: 38px;
  stroke-width: 1.45;
}
.sdgv-concierge__controls {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
}
.sdgv-concierge__note {
  margin: 12px 0 0 !important;
  color: color-mix(in srgb, var(--sdgv-chatbot-header-text, #0f172a) 62%, transparent) !important;
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
}
.sdgv-concierge__back,
.sdgv-concierge__continue,
.sdgv-concierge__view-all {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 999px;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.sdgv-concierge__back {
  min-width: 44px;
  border: 1px solid color-mix(in srgb, var(--sdgv-chatbot-arrow-color, #0f172a) 22%, transparent);
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fff) 92%, var(--sdgv-chatbot-arrow-color, #0f172a) 8%);
  color: var(--sdgv-chatbot-arrow-color, #0f172a);
  padding: 0 15px;
  box-shadow: 0 10px 22px rgba(15,23,42,.08);
}
.sdgv-concierge__back:disabled {
  cursor: default;
  opacity: .36;
}
.sdgv-concierge__continue,
.sdgv-concierge__view-all {
  flex: 1;
  gap: 9px;
  border: 1px solid var(--sdgv-chatbot-action-bg, #6d5df4);
  background: var(--sdgv-chatbot-action-bg, #6d5df4);
  color: var(--sdgv-chatbot-action-text, #fff);
  padding: 0 20px;
  box-shadow: 0 14px 28px color-mix(in srgb, var(--sdgv-chatbot-action-bg, #6d5df4) 34%, transparent);
}
.sdgv-concierge__view-all {
  background: transparent;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  box-shadow: none;
}
.sdgv-concierge__continue:hover,
.sdgv-concierge__view-all:hover,
.sdgv-concierge__back:not(:disabled):hover {
  transform: translateY(-2px);
}
.sdgv-concierge__loading {
  display: flex;
  justify-content: center;
  gap: 7px;
  min-height: 204px;
  align-items: center;
}
.sdgv-concierge__loading i {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--sdgv-chatbot-accent, #6d5df4);
  animation: sdgv-concierge-loading 1s ease-in-out infinite;
}
.sdgv-concierge__loading i:nth-child(2) { animation-delay: .12s; }
.sdgv-concierge__loading i:nth-child(3) { animation-delay: .24s; }
@keyframes sdgv-concierge-loading {
  0%, 80%, 100% { opacity: .35; transform: translateY(0); }
  40% { opacity: 1; transform: translateY(-7px); }
}
.sdgv-concierge__result-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  margin-top: 18px;
}
.sdgv-concierge__result-card {
  display: block;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15,23,42,.08);
  text-decoration: none;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sdgv-concierge__result-card:hover,
.sdgv-concierge__result-card:focus-visible {
  transform: translateY(-3px);
  border-color: var(--sdgv-chatbot-action-bg, #001d36);
  box-shadow: 0 18px 38px rgba(15,23,42,.14);
  outline: none;
}
.sdgv-concierge__result-card img,
.sdgv-concierge__result-placeholder {
  display: block;
  width: 100%;
  height: 92px;
  object-fit: cover;
}
.sdgv-concierge__result-placeholder--1 {
  background: radial-gradient(circle at 34% 20%, rgba(255,255,255,.88), transparent 28%), linear-gradient(135deg, #c9b6ff, #7e8f7a 48%, #10223a);
}
.sdgv-concierge__result-placeholder--2 {
  background: radial-gradient(circle at 35% 24%, rgba(254,215,170,.95), transparent 23%), linear-gradient(135deg, #1f2937, #5b3525 45%, #0b1220);
}
.sdgv-concierge__result-placeholder--3 {
  background: radial-gradient(circle at 50% 25%, rgba(255,255,255,.95), transparent 24%), linear-gradient(135deg, #f9e7bd, #d1b47d 45%, #6b7280);
}
.sdgv-concierge__result-card div {
  padding: 11px;
}
.sdgv-concierge__result-card strong {
  display: block;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
}
.sdgv-concierge__result-card small {
  display: block;
  min-height: 36px;
  margin-top: 5px;
  color: color-mix(in srgb, var(--sdgv-chatbot-bot-text, #172033) 62%, transparent);
  font-size: 11px;
  line-height: 1.35;
}
.sdgv-concierge__result-card span {
  display: block;
  margin-top: 8px;
  color: var(--sdgv-chatbot-header-text, #0f172a);
  font-size: 13px;
  font-weight: 900;
}
.sdgv-concierge__result-card em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--sdgv-chatbot-action-bg, #001d36);
  color: var(--sdgv-chatbot-action-text, #ffffff);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .sdgv-gift-concierge .sdgv-chatbot__toggle,
  .sdgv-gift-concierge .sdgv-chatbot__launcher,
  .sdgv-gift-concierge .sdgv-chatbot__panel,
  .sdgv-mini-basket,
  .sdgv-mini-basket__backdrop,
  .sdgv-concierge__option,
  .sdgv-concierge__arrow,
  .sdgv-concierge__continue,
  .sdgv-concierge__view-all,
  .sdgv-concierge__back,
  .sdgv-concierge__loading i {
    animation: none;
    transition: none;
  }
}

@media (max-width: 640px) {
  .sdgv-gift-concierge {
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    left: auto;
    max-width: calc(100vw - 20px);
  }
  .sdgv-gift-concierge .sdgv-chatbot__panel {
    inset: auto 10px calc(12px + env(safe-area-inset-bottom, 0px)) 10px;
    width: auto;
    height: calc(100dvh - 40px - env(safe-area-inset-bottom, 0px));
    max-width: calc(100vw - 20px);
    max-height: calc(100dvh - 40px - env(safe-area-inset-bottom, 0px));
    border-radius: 24px;
  }
  .sdgv-gift-concierge .sdgv-chatbot__toggle {
    max-width: calc(100vw - 24px);
    padding: 13px 17px;
  }
  .sdgv-gift-concierge .sdgv-chatbot__launcher {
    max-width: calc(100vw - 24px);
  }
  .sdgv-gift-concierge .sdgv-chatbot__basket {
    min-width: 50px;
    min-height: 48px;
    padding-inline: 15px 12px;
  }
  .sdgv-gift-concierge .sdgv-chatbot__basket--header {
    min-width: 44px;
    min-height: 44px;
    padding: 0;
  }
  .sdgv-gift-concierge .sdgv-chatbot__toggle-label {
    white-space: nowrap;
  }
  .sdgv-mini-basket {
    width: 100%;
    border-left: 0;
  }
  .sdgv-mini-basket__item {
    grid-template-columns: 68px minmax(0, 1fr);
  }
  .sdgv-mini-basket__line {
    grid-column: 2;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  .sdgv-mini-basket__image,
  .sdgv-mini-basket__placeholder {
    width: 68px;
    height: 68px;
  }
  .sdgv-concierge__body {
    padding: 0 16px 16px;
  }
  .sdgv-concierge__question {
    font-size: 19px;
  }
  .sdgv-concierge__stack {
    height: 216px;
  }
  .sdgv-concierge__option {
    width: 152px;
    height: 180px;
    border-radius: var(--sdgv-chatbot-card-radius, 30px);
    transform: translateX(calc(var(--sdgv-option-offset, 0) * 94px)) rotateY(calc(var(--sdgv-option-offset, 0) * -6deg)) scale(var(--sdgv-option-scale, 1));
  }
  .sdgv-concierge__scene {
    inset: 0 8px;
  }
  .sdgv-concierge__arrow {
    width: 48px;
    height: 48px;
  }
  .sdgv-concierge__arrow svg {
    width: 34px;
    height: 34px;
  }
  .sdgv-concierge__arrow--prev { left: -10px; }
  .sdgv-concierge__arrow--next { right: -10px; }
  .sdgv-concierge__result-grid {
    grid-template-columns: 1fr;
  }
  .sdgv-concierge__result-card {
    display: grid;
    grid-template-columns: 112px 1fr;
  }
  .sdgv-concierge__result-card img,
  .sdgv-concierge__result-placeholder {
    height: 100%;
    min-height: 112px;
  }
}

.sdgv-cinematic-hero__kicker {
  margin: 0 0 12px;
  color: color-mix(in srgb, var(--vora-accent, #b8872a) 88%, #fff);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.sdgv-cinematic-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
}
.sdgv-cinematic-hero__cta {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  padding: 0 24px;
  text-decoration: none;
  text-transform: uppercase;
}
.sdgv-cinematic-hero__cta--primary {
  background: var(--sdgv-btn-bg, var(--vora-primary, #001d36));
  color: var(--sdgv-btn-text, #ffffff);
  border-color: var(--sdgv-btn-bg, var(--vora-primary, #001d36));
  box-shadow: 0 18px 44px rgba(0,0,0,.16);
}
.sdgv-cinematic-hero__cta--primary:hover,
.sdgv-cinematic-hero__cta--primary:focus-visible {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-primary, #001d36)));
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff));
  border-color: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-primary, #001d36)));
}
.sdgv-cinematic-hero__cta--secondary {
  border: 1px solid rgba(255,255,255,.52);
  color: #fff;
}
.sdgv-redeem__trust-icon svg {
  width: 22px;
  height: 22px;
}

/* ══ v2.9.5.22 — Premium storefront portal sections ════════════════════ */
.sdgv-premium-section,
.sdgv-premium-benefits,
.sdgv-premium-concierge-banner,
.sdgv-premium-trust-strip {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}
.sdgv-premium-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin-top: 28px;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 86%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--vora-border, #e7dfd2) 78%, transparent);
  box-shadow: var(--vora-shadow-soft, 0 18px 50px rgba(0,29,54,.08));
}
.sdgv-premium-benefit,
.sdgv-premium-trust-strip article {
  min-width: 0;
  background: color-mix(in srgb, var(--vora-surface, #fff) 94%, transparent);
}
.sdgv-premium-benefit {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 14px;
  align-items: center;
  padding: 20px 24px;
}
.sdgv-premium-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid color-mix(in srgb, var(--vora-accent, #b8872a) 34%, transparent);
  border-radius: 999px;
  color: var(--vora-accent, #b8872a);
  background: color-mix(in srgb, var(--vora-accent, #b8872a) 8%, transparent);
}
.sdgv-premium-icon svg {
  width: 19px;
  height: 19px;
}
.sdgv-premium-benefit .sdgv-premium-icon {
  grid-row: span 2;
}
.sdgv-premium-benefit strong,
.sdgv-premium-trust-strip strong {
  color: var(--vora-primary, #001d36);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.sdgv-premium-benefit span:not(.sdgv-premium-icon),
.sdgv-premium-trust-strip small {
  color: var(--vora-muted, #6f7680);
  font-size: 13px;
  line-height: 1.45;
}
.sdgv-premium-section {
  margin-top: var(--sdgv-section-spacing, 48px);
}
.sdgv-premium-section__head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 22px;
}
.sdgv-premium-section__head--center {
  justify-content: center;
  text-align: center;
}
.sdgv-premium-section__head--compact {
  margin-bottom: 14px;
}
.sdgv-premium-section__head span {
  display: block;
  margin-bottom: 7px;
  color: var(--vora-accent, #b8872a);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sdgv-premium-section__head h2,
.sdgv-premium-concierge-banner h2 {
  margin: 0;
  color: var(--vora-primary, #001d36);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: clamp(28px, 4vw, 48px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.02;
}
.sdgv-premium-section__head a {
  color: var(--vora-primary, #001d36);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}
.sdgv-premium-category-grid,
.sdgv-premium-how__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.sdgv-premium-category-card {
  position: relative;
  display: flex;
  min-height: 220px;
  overflow: hidden;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 82%, transparent);
  border-radius: 18px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--vora-surface, #fff) 92%, transparent), color-mix(in srgb, var(--vora-page-bg, #fbfaf7) 96%, transparent));
  box-shadow: var(--vora-shadow-card, 0 24px 70px rgba(0,29,54,.12));
  color: inherit;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sdgv-premium-category-card:hover,
.sdgv-premium-category-card:focus-visible,
.sdgv-premium-featured-card:hover,
.sdgv-premium-featured-card:focus-visible {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--vora-accent, #b8872a) 48%, var(--vora-border, #e7dfd2));
  box-shadow: 0 28px 80px rgba(0,29,54,.16);
  outline: none;
}
.sdgv-premium-category-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .74;
}
.sdgv-premium-category-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,29,54,.02), rgba(0,29,54,.62));
}
.sdgv-premium-category-card > * {
  position: relative;
  z-index: 1;
}
.sdgv-premium-category-card strong {
  margin-top: 12px;
  color: var(--vora-primary, #001d36);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: 24px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.05;
}
.sdgv-premium-category-card--image strong,
.sdgv-premium-category-card--image small {
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.28);
}
.sdgv-premium-category-card small {
  margin-top: 8px;
  color: var(--vora-muted, #6f7680);
  font-size: 13px;
  line-height: 1.45;
}
.sdgv-premium-featured__rail {
  display: grid;
  grid-auto-columns: minmax(260px, 1fr);
  grid-auto-flow: column;
  gap: 16px;
  overflow-x: auto;
  padding: 2px 2px 18px;
  scroll-snap-type: x proximity;
}
.sdgv-premium-featured-card {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 82%, transparent);
  border-radius: 18px;
  background: var(--vora-surface, #fff);
  color: inherit;
  text-decoration: none;
  box-shadow: var(--vora-shadow-card, 0 24px 70px rgba(0,29,54,.12));
  scroll-snap-align: start;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sdgv-premium-featured-card__media,
.sdgv-premium-featured-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
}
.sdgv-premium-featured-card__media {
  background: color-mix(in srgb, var(--vora-primary, #001d36) 9%, #fff);
}
.sdgv-premium-featured-card__media img {
  object-fit: cover;
}
.sdgv-premium-featured-card__body {
  display: grid;
  gap: 8px;
  padding: 18px;
}
.sdgv-premium-featured-card small {
  color: var(--vora-muted, #6f7680);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.sdgv-premium-featured-card strong {
  color: var(--vora-primary, #001d36);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: 24px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.05;
}
.sdgv-premium-featured-card em {
  color: var(--vora-accent, #b8872a);
  font-size: 13px;
  font-style: normal;
  font-weight: 850;
}
.sdgv-premium-all .sdgv-util-bar {
  width: 100%;
  margin-top: 0;
}
.sdgv-premium-all .sdgv-grid {
  width: 100%;
}
.sdgv-premium-how__step {
  position: relative;
  min-height: 220px;
  padding: 22px;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 82%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--vora-surface, #fff) 96%, transparent);
  box-shadow: var(--vora-shadow-soft, 0 18px 50px rgba(0,29,54,.08));
}
.sdgv-premium-how__number {
  position: absolute;
  top: 18px;
  right: 20px;
  color: color-mix(in srgb, var(--vora-accent, #b8872a) 36%, transparent);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: 42px;
  font-style: italic;
  line-height: 1;
}
.sdgv-premium-how__step strong {
  display: block;
  margin-top: 46px;
  color: var(--vora-primary, #001d36);
  font-size: 15px;
  font-weight: 850;
}
.sdgv-premium-how__step p {
  margin: 9px 0 0;
  color: var(--vora-muted, #6f7680);
  font-size: 13px;
  line-height: 1.55;
}
.sdgv-premium-concierge-banner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(240px, .95fr);
  gap: 26px;
  align-items: center;
  margin-top: var(--sdgv-section-spacing, 48px);
  overflow: hidden;
  padding: 28px;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 82%, transparent);
  border-radius: 22px;
  background: linear-gradient(135deg, var(--vora-primary, #001d36), #24384b 54%, color-mix(in srgb, var(--vora-accent, #b8872a) 62%, #1a2332));
  box-shadow: var(--vora-shadow-card, 0 24px 70px rgba(0,29,54,.12));
}
.sdgv-premium-concierge-banner__copy {
  max-width: 560px;
}
.sdgv-premium-concierge-banner__copy span {
  color: color-mix(in srgb, var(--vora-accent, #b8872a) 82%, #fff);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sdgv-premium-concierge-banner h2,
.sdgv-premium-concierge-banner p {
  color: #fff;
}
.sdgv-premium-concierge-banner p {
  max-width: 460px;
  margin: 12px 0 20px;
  font-size: 15px;
  line-height: 1.6;
  opacity: .82;
}
.sdgv-premium-concierge-banner button {
  min-height: 46px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: var(--vora-primary, #001d36);
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .1em;
  padding: 0 24px;
  text-transform: uppercase;
}
.sdgv-premium-concierge-banner img {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 16px;
  object-fit: cover;
}
.sdgv-premium-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin-top: 24px;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 86%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--vora-border, #e7dfd2) 78%, transparent);
}
.sdgv-premium-trust-strip article {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 12px;
  padding: 18px;
}
.sdgv-premium-trust-strip .sdgv-premium-icon {
  grid-row: span 2;
  width: 34px;
  height: 34px;
}

@media (max-width: 900px) {
  .sdgv-premium-benefits,
  .sdgv-premium-category-grid,
  .sdgv-premium-how__grid,
  .sdgv-premium-trust-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sdgv-premium-concierge-banner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .sdgv-premium-section,
  .sdgv-premium-benefits,
  .sdgv-premium-concierge-banner,
  .sdgv-premium-trust-strip {
    width: min(100% - 24px, 1180px);
  }
  .sdgv-premium-benefits,
  .sdgv-premium-category-grid,
  .sdgv-premium-how__grid,
  .sdgv-premium-trust-strip {
    grid-template-columns: 1fr;
  }
  .sdgv-premium-benefit,
  .sdgv-premium-trust-strip article {
    padding: 18px;
  }
  .sdgv-premium-section__head {
    align-items: start;
    flex-direction: column;
  }
  .sdgv-premium-category-card {
    min-height: 180px;
  }
  .sdgv-premium-featured__rail {
    grid-auto-columns: minmax(230px, 78vw);
  }
  .sdgv-premium-concierge-banner {
    padding: 22px;
    border-radius: 18px;
  }
  .sdgv-premium-concierge-banner img {
    aspect-ratio: 4 / 3;
  }
}

/* ══ v2.9.5.18 — Pill inputs + single-service pill ══════════════════════ */

/* Ensure date input respects pill radius on Webkit */
input[type="date"].sdgv-input {
  -webkit-appearance: none;
  border-radius: 9999px;
}

/* Single-service pill — shown on voucher single page when only 1 service */
.sdgv-sv__single-service-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: rgba(184,135,42,0.08);
  border: 1.5px solid rgba(184,135,42,0.38);
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 600;
  color: var(--vora-tertiary, #b8872a);
  line-height: 1.3;
  margin-top: 4px;
}
.sdgv-sv__single-service-pill svg {
  stroke: var(--vora-tertiary, #b8872a);
  flex-shrink: 0;
}

/* Final cascade for the reference-led Concierge launcher. */
.sdgv-gift-concierge .sdgv-chatbot__launcher {
  overflow: hidden;
  background: var(--sdgv-chatbot-button-bg, #071225);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 12px 30px rgba(0, 29, 54, .28);
}
.sdgv-gift-concierge .sdgv-chatbot__toggle {
  min-height: 52px;
  padding: 0 23px 0 17px;
}
.sdgv-gift-concierge .sdgv-chatbot__basket {
  min-width: 50px;
  min-height: 52px;
  padding: 0 12px 0 17px;
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header {
  display: inline-grid;
  width: 42px;
  min-width: 42px;
  min-height: 42px;
  padding: 0;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 50%;
  background: #fff;
  color: var(--vora-primary, #001d36);
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header[hidden] { display: none; }
.sdgv-gift-concierge .sdgv-chatbot__basket-count,
.sdgv-gift-concierge .sdgv-chatbot__basket--header .sdgv-chatbot__basket-count {
  background: var(--vora-accent, #b8872a);
  color: #fff;
  border-color: #fff;
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header .sdgv-chatbot__basket-count { top: -4px; right: -4px; }
.sdgv-gift-concierge .sdgv-chatbot__panel {
  width: min(430px, calc(100vw - 32px));
  height: min(700px, calc(100dvh - 88px));
  max-height: min(700px, calc(100dvh - 88px));
  border-radius: 16px;
}
@media (max-width: 640px) {
  .sdgv-gift-concierge {
    right: max(10px, env(safe-area-inset-right, 0px));
    bottom: max(10px, env(safe-area-inset-bottom, 0px));
  }
  .sdgv-gift-concierge .sdgv-chatbot__panel {
    position: fixed;
    inset: auto 10px max(10px, env(safe-area-inset-bottom, 0px)) 10px;
    width: auto;
    height: min(690px, calc(100dvh - 20px));
    max-height: min(690px, calc(100dvh - 20px));
    border-radius: 14px;
  }
  .sdgv-gift-concierge .sdgv-chatbot__toggle { min-height: 50px; padding: 0 18px 0 13px; }
  .sdgv-gift-concierge .sdgv-chatbot__basket { min-height: 50px; min-width: 48px; padding: 0 10px 0 14px; }
}

/* ── v2.9.7 Premium Gift Concierge panel ─────────────────── */
.sdgv-gift-concierge {
  --sdgv-concierge-ivory: var(--sdgv-chatbot-panel-bg, #fbf8f1);
  --sdgv-concierge-gold: var(--sdgv-chatbot-accent, var(--vora-accent, #b8872a));
  --sdgv-concierge-ink: var(--sdgv-chatbot-header-text, #161616);
  --sdgv-concierge-muted: var(--sdgv-chatbot-bot-text, #6e6a61);
  --sdgv-concierge-border: color-mix(in srgb, var(--sdgv-concierge-ink) 14%, transparent);
  --sdgv-concierge-shadow: 0 28px 78px rgba(25, 20, 12, .2);
}
.sdgv-gift-concierge .sdgv-chatbot__panel {
  width: min(var(--sdgv-concierge-panel-width, 780px), calc(100vw - 40px));
  height: min(720px, calc(100dvh - 88px));
  max-height: min(720px, calc(100dvh - 88px));
  border: 1px solid var(--sdgv-concierge-border);
  border-radius: 18px;
  background: var(--sdgv-concierge-ivory);
  box-shadow: var(--sdgv-concierge-shadow);
}
.sdgv-gift-concierge .sdgv-chatbot__head {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  min-height: 72px;
  padding: 12px 18px;
  border-bottom-color: var(--sdgv-concierge-border);
  background: var(--sdgv-chatbot-header-bg, var(--sdgv-concierge-ivory));
}
.sdgv-gift-concierge .sdgv-chatbot__head-identity { justify-self: center; text-align: center; }
.sdgv-gift-concierge .sdgv-chatbot__head-title {
  color: var(--sdgv-concierge-ink);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: 22px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: .02em;
}
.sdgv-gift-concierge .sdgv-chatbot__head-actions { margin: 0; }
.sdgv-gift-concierge .sdgv-chatbot__head-actions--basket { justify-self: start; }
.sdgv-gift-concierge .sdgv-chatbot__head-actions--close { justify-self: end; }
.sdgv-gift-concierge .sdgv-chatbot__basket--header,
.sdgv-gift-concierge .sdgv-chatbot__close {
  display: grid;
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  place-items: center;
  border: 1px solid var(--sdgv-concierge-border);
  border-radius: 50%;
  background: var(--sdgv-chatbot-bot-bg, #fffdf8);
  color: var(--sdgv-concierge-ink);
}
.sdgv-gift-concierge .sdgv-chatbot__basket--header:not(.is-visible) { display: none; }
.sdgv-gift-concierge .sdgv-chatbot__basket--header .sdgv-chatbot__basket-count { background: var(--sdgv-concierge-gold); }
.sdgv-gift-concierge .sdgv-chatbot__close:hover,
.sdgv-gift-concierge .sdgv-chatbot__basket--header:hover { border-color: var(--sdgv-concierge-gold); color: var(--sdgv-concierge-ink); }
.sdgv-gift-concierge .sdgv-concierge__progress {
  display: flex;
  gap: 4px;
  padding: 14px 8% 0;
}
.sdgv-gift-concierge .sdgv-concierge__progress span {
  width: 100%;
  height: 2px;
  flex: 1;
  border-radius: 999px;
  background: rgba(61, 51, 35, .13);
}
.sdgv-gift-concierge .sdgv-concierge__progress span::after { background: var(--sdgv-concierge-gold); }
.sdgv-gift-concierge .sdgv-concierge__progress[data-step="0"] { display: none; }
.sdgv-gift-concierge .sdgv-concierge__body { padding: 0 30px 24px; background: var(--sdgv-concierge-ivory); }
.sdgv-concierge__stage { display: flex; min-height: 100%; flex-direction: column; }
.sdgv-concierge__welcome {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 42%);
  align-items: center;
  gap: 0;
  min-height: 252px;
  margin: 0 -30px 18px;
  padding: 34px 0 34px 46px;
  border-radius: 0;
  border-bottom: 1px solid var(--sdgv-concierge-border);
  background: transparent;
  color: var(--sdgv-concierge-ink);
}
.sdgv-concierge__welcome .sdgv-concierge__eyebrow,
.sdgv-concierge__step-intro .sdgv-concierge__eyebrow {
  margin: 0 0 8px !important;
  color: var(--sdgv-concierge-gold) !important;
  font-size: 10px !important;
  letter-spacing: .18em;
  text-align: left;
}
.sdgv-concierge__welcome h3 {
  margin: 0;
  color: var(--sdgv-concierge-ink);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: clamp(27px, 3.4vw, 39px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
  line-height: .98;
}
.sdgv-concierge__welcome > div > p:last-child {
  margin: 13px 0 0;
  color: var(--sdgv-concierge-muted);
  font-size: 14px;
  line-height: 1.5;
}
.sdgv-concierge__welcome-art {
  display: grid;
  width: 100%;
  height: 252px;
  place-items: center;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: radial-gradient(circle at 28% 22%, #fffdf9 0 8%, transparent 9%), linear-gradient(140deg, #ead9b3, #b8872a 55%, #50412e);
  color: #fff;
  box-shadow: inset 1px 0 rgba(255,255,255,.5);
}
.sdgv-concierge__welcome-art svg { width: 54px; height: 54px; fill: none; stroke: currentColor; stroke-width: 1.3; }
.sdgv-concierge__welcome-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sdgv-concierge__step-intro { margin-top: 24px; }
.sdgv-concierge__question {
  max-width: 520px;
  margin: 0;
  color: var(--sdgv-concierge-ink);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: 31px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.04;
  text-align: left;
}
.sdgv-concierge__stack { height: 292px; margin: 18px 0 0; }
.sdgv-concierge__scene {
  inset: 0 44px;
  overflow: visible;
  border-radius: 16px;
  background: linear-gradient(90deg, transparent, rgba(184,135,42,.08), transparent);
  pointer-events: auto;
}
.sdgv-concierge__scene::before,
.sdgv-concierge__scene::after { display: none; }
.sdgv-concierge__track { overflow: visible; perspective: none; }
.sdgv-concierge__option {
  width: 226px;
  height: 276px;
  justify-content: flex-end;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--sdgv-concierge-border);
  border-radius: 14px;
  background: #fffdf8;
  box-shadow: 0 18px 36px rgba(48, 39, 26, .13);
  transform: translateX(calc(var(--sdgv-option-offset, 0) * 174px)) scale(var(--sdgv-option-scale, 1));
  transform-style: flat;
}
.sdgv-concierge__option::before { z-index: 1; inset: auto 0 0; height: 34%; border-radius: 0; background: var(--sdgv-chatbot-bot-bg, #fffdf8); opacity: 1; }
.sdgv-concierge__option-image { display: block; inset: 0 0 auto; width: 100%; height: 69%; opacity: 1; filter: none; }
.sdgv-concierge__option.is-selected .sdgv-concierge__option-image { opacity: 1; }
.sdgv-concierge__option-image--fallback {
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #d7bd80, #6f5331 52%, #251d15);
  color: rgba(255,255,255,.9);
}
.sdgv-concierge__option-image--fallback svg { width: 66px; height: 66px; fill: none; stroke: currentColor; stroke-width: 1.25; }
.sdgv-concierge__option.is-selected { border-color: var(--sdgv-concierge-gold); background: var(--sdgv-chatbot-bot-bg, #fffdf8); color: var(--sdgv-concierge-ink); box-shadow: 0 26px 46px rgba(48, 39, 26, .23); cursor: pointer; }
.sdgv-concierge__option > :not(.sdgv-concierge__option-image) { transform: none; }
.sdgv-concierge__option-content { position: relative; z-index: 2; display: block; width: 100%; padding: 10px 16px 14px; color: var(--sdgv-concierge-ink); text-align: center; }
.sdgv-concierge__option-icon { width: 28px; height: 28px; margin: 0 auto 6px; border-radius: 50%; background: transparent; color: var(--sdgv-concierge-gold); }
.sdgv-concierge__option-icon svg { width: 17px; height: 17px; }
.sdgv-concierge__option strong { margin: 0; color: var(--sdgv-concierge-ink); font-family: var(--vora-serif, Georgia, serif); font-size: 20px; font-style: italic; font-weight: 400; }
.sdgv-concierge__option small { display: none; }
.sdgv-concierge__arrow { width: 46px; height: 46px; border: 1px solid var(--sdgv-concierge-border); border-radius: 50%; background: #fffdf8; color: var(--sdgv-concierge-ink); box-shadow: 0 8px 18px rgba(48, 39, 26, .1); }
.sdgv-concierge__arrow:hover { color: var(--sdgv-concierge-ink); border-color: var(--sdgv-concierge-gold); opacity: 1; }
.sdgv-concierge__arrow svg { width: 22px; height: 22px; }
.sdgv-concierge__arrow--prev { left: 0; }
.sdgv-concierge__arrow--next { right: 0; }
.sdgv-concierge__controls { margin-top: 12px; }
.sdgv-concierge__back,
.sdgv-concierge__continue,
.sdgv-concierge__view-all { min-height: 46px; border-radius: 8px; font-size: 13px; }
.sdgv-concierge__back { color: var(--sdgv-concierge-ink); background: transparent; box-shadow: none; }
.sdgv-concierge__continue,
.sdgv-concierge__view-all { background: var(--sdgv-concierge-ink); color: #fff; }
.sdgv-concierge__message-form { margin-top: 14px; padding-top: 0; }
.sdgv-concierge__message-input { min-height: 48px; border-color: var(--sdgv-concierge-border); border-radius: 999px; background: #fffdf8; color: var(--sdgv-concierge-ink); }
.sdgv-concierge__message-form button { width: 48px; height: 48px; border-radius: 50%; background: var(--sdgv-concierge-ink); color: var(--sdgv-concierge-gold); }
.sdgv-concierge__results { padding-top: 24px; }
.sdgv-concierge__result-card { border-color: var(--sdgv-concierge-border); border-radius: 12px; background: var(--sdgv-chatbot-bot-bg, #fffdf8); }
.sdgv-concierge__result-card em { background: var(--sdgv-concierge-ink); color: #fff; }

@media (max-width: 640px) {
  .sdgv-gift-concierge .sdgv-chatbot__panel { inset: auto 10px max(10px, env(safe-area-inset-bottom, 0px)) 10px; width: auto; height: min(680px, calc(100dvh - 20px)); max-height: min(680px, calc(100dvh - 20px)); border-radius: 14px; }
  .sdgv-gift-concierge .sdgv-concierge__body { padding: 0 16px 18px; }
  .sdgv-concierge__welcome { grid-template-columns: 1fr; min-height: 0; margin: 0 -16px 16px; padding: 26px 24px; }
  .sdgv-concierge__welcome-art { display: none; }
  .sdgv-concierge__welcome h3 { font-size: 29px; }
  .sdgv-concierge__question { font-size: 28px; }
  .sdgv-concierge__stack { height: 238px; }
  .sdgv-concierge__scene { inset: 0 32px; }
  .sdgv-concierge__option { width: 182px; height: 224px; transform: translateX(calc(var(--sdgv-option-offset, 0) * 132px)) scale(var(--sdgv-option-scale, 1)); }
  .sdgv-concierge__option strong { font-size: 20px; }
  .sdgv-concierge__option small { font-size: 10px; }
  .sdgv-concierge__arrow { width: 42px; height: 42px; }
  .sdgv-concierge__result-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .sdgv-concierge__option,
  .sdgv-concierge__arrow,
  .sdgv-concierge__result-card { transition: none; }
  .sdgv-chatbot[data-open="1"] .sdgv-chatbot__panel { animation: none; }
}

/* ── Concierge reset: isolate the premium panel from legacy chat styles ── */
html { margin-top: 0 !important; }
body.admin-bar { margin-top: 0 !important; padding-top: 0 !important; }
#wpadminbar { display: none !important; }
/* Collapse the theme wrapper header shell to zero height.
   GeneratePress applies padding-block: 1rem to .site-header (top + bottom).
   When EHF (Elementor Header Footer Builder) is active, #site-header is an empty
   shell — the real header is the Elementor template rendered below it.
   Collapsing it removes the persistent 16px gap at the top of every page. */
#site-header,
.site-header.dynamic-header {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: visible !important;
}
.sdgv-site-header { margin-top: 0 !important; }
@media (min-width: 641px) {
  .sdgv-site-header__links { display: flex !important; visibility: visible !important; }
}

body > .sdgv-gift-concierge {
  position: fixed !important;
  right: 24px !important;
  bottom: 24px !important;
  left: auto !important;
  z-index: 2147483000 !important;
  width: auto !important;
  max-width: calc(100vw - 32px) !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__launcher {
  overflow: hidden !important;
  background: var(--sdgv-chatbot-button-bg, #000) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 16px 34px rgba(0,0,0,.25) !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__launcher:hover,
body > .sdgv-gift-concierge .sdgv-chatbot__toggle:hover {
  background: var(--sdgv-chatbot-button-bg, #000) !important;
  color: var(--sdgv-chatbot-button-text, #fff) !important;
  transform: none !important;
}
/* Fix: theme button styles can override transparent background on toggle/basket.
   Force transparent so the launcher background colour shows through both halves. */
body > .sdgv-gift-concierge .sdgv-chatbot__toggle,
body > .sdgv-gift-concierge .sdgv-chatbot__basket {
  background: transparent !important;
  border: 0 !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__panel {
  position: fixed !important;
  right: 24px !important;
  bottom: 24px !important;
  left: auto !important;
  width: min(780px, calc(100vw - 48px)) !important;
  height: min(760px, calc(100dvh - 48px)) !important;
  max-height: min(760px, calc(100dvh - 48px)) !important;
  margin: 0 !important;
  border: 1px solid rgba(21,18,13,.16) !important;
  border-radius: 22px !important;
  background: #fbf9f4 !important;
  box-shadow: 0 32px 84px rgba(20,16,11,.25) !important;
}
body > .sdgv-gift-concierge[data-open="1"] .sdgv-chatbot__panel { display: flex !important; }
body > .sdgv-gift-concierge .sdgv-chatbot__head {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) 48px !important;
  align-items: center !important;
  min-height: 76px !important;
  padding: 14px 22px !important;
  border-bottom: 1px solid rgba(21,18,13,.15) !important;
  background: #fffdf9 !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__head-identity { justify-self: center !important; min-width: 0 !important; }
body > .sdgv-gift-concierge .sdgv-chatbot__head-title {
  color: #17130e !important;
  font-family: var(--vora-serif, Georgia, serif) !important;
  font-size: 29px !important;
  font-style: italic !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__head-actions--basket { justify-self: start !important; }
body > .sdgv-gift-concierge .sdgv-chatbot__head-actions--close { justify-self: end !important; }
body > .sdgv-gift-concierge .sdgv-chatbot__basket--header,
body > .sdgv-gift-concierge .sdgv-chatbot__close {
  display: grid !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  place-items: center !important;
  border: 1px solid rgba(21,18,13,.17) !important;
  border-radius: 50% !important;
  background: #fffdf9 !important;
  color: #17130e !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__basket--header[hidden] { display: none !important; }
body > .sdgv-gift-concierge .sdgv-concierge__body {
  min-width: 0 !important;
  padding: 0 0 22px !important;
  overflow: auto !important;
  background: #fbf9f4 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 43%) !important;
  min-height: 272px !important;
  margin: 0 !important;
  padding: 38px 0 38px 48px !important;
  gap: 0 !important;
  border-bottom: 1px solid rgba(21,18,13,.12) !important;
  /* Fix: prevent flex-start collapse — welcome must stretch to full panel width */
  align-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome > div { min-width: 0 !important; max-width: 390px !important; }
body > .sdgv-gift-concierge .sdgv-concierge__welcome h3 {
  font-size: 38px !important;
  line-height: 1.04 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome > div > p:last-child {
  max-width: 340px !important;
  font-size: 16px !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art { width: 100% !important; height: 272px !important; }
body > .sdgv-gift-concierge .sdgv-concierge__carousel-label,
body > .sdgv-gift-concierge .sdgv-concierge__step-intro { margin-left: 48px !important; margin-right: 48px !important; }
body > .sdgv-gift-concierge .sdgv-concierge__carousel-label {
  margin-top: 22px !important;
  margin-bottom: 0 !important;
  color: #b8872a !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__stack { height: 282px !important; margin: 14px 0 0 !important; }
body > .sdgv-gift-concierge .sdgv-concierge__scene { inset: 0 64px !important; overflow: visible !important; pointer-events: auto !important; }
body > .sdgv-gift-concierge .sdgv-concierge__track { overflow: visible !important; }
body > .sdgv-gift-concierge .sdgv-concierge__option {
  width: 206px !important;
  height: 252px !important;
  border-color: rgba(21,18,13,.13) !important;
  border-radius: 14px !important;
  background: #fffdf9 !important;
  transform: translateX(calc(var(--sdgv-option-offset, 0) * 158px)) scale(var(--sdgv-option-scale, 1)) !important;
}
/* Selected: warm gold border + shadow, NOT dark navy fill */
body > .sdgv-gift-concierge .sdgv-concierge__option.is-selected {
  border-color: #b8872a !important;
  border-width: 2px !important;
  background: #fffdf9 !important;
  color: #17130e !important;
  box-shadow: 0 16px 40px rgba(184,135,42,.22), 0 4px 12px rgba(20,16,11,.08) !important;
  cursor: default !important;
}
/* Icon container: warm gold tint matching brand (not purple accent) */
body > .sdgv-gift-concierge .sdgv-concierge__option-icon {
  background: rgba(184,135,42,.11) !important;
  color: #b8872a !important;
  box-shadow: none !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option.is-selected .sdgv-concierge__option-icon {
  background: rgba(184,135,42,.16) !important;
  color: #b8872a !important;
}
/* Photo layout: image fills top 66% of card — meets the 34% ::before white footer cleanly */
body > .sdgv-gift-concierge .sdgv-concierge__option-image {
  inset: 0 0 auto 0 !important;   /* anchored top */
  height: 66% !important;
  border-radius: 13px 13px 0 0 !important;
  opacity: 1 !important;
  filter: saturate(1.05) contrast(1.02) !important;
}
/* When image is present, push icon+label to bottom of card */
body > .sdgv-gift-concierge .sdgv-concierge__option:has(> .sdgv-concierge__option-image[src]:not([src=""])) {
  justify-content: flex-end !important;
  padding: 0 14px 18px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__arrow {
  width: 52px !important;
  height: 52px !important;
  border: 1px solid rgba(21,18,13,.16) !important;
  border-radius: 50% !important;
  background: #fffdf9 !important;
  color: #17130e !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__arrow:hover {
  border-color: #b8872a !important;
  background: #fffdf9 !important;
  color: #17130e !important;
  transform: translateY(-50%) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__controls { margin: 4px 48px 0 !important; }
body > .sdgv-gift-concierge .sdgv-concierge__continue,
body > .sdgv-gift-concierge .sdgv-concierge__view-all {
  background: #17130e !important;
  border-color: #17130e !important;
  color: #fff !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__continue:hover,
body > .sdgv-gift-concierge .sdgv-concierge__view-all:hover { background: #17130e !important; color: #fff !important; transform: none !important; }
body > .sdgv-gift-concierge .sdgv-concierge__back:hover { background: transparent !important; color: #17130e !important; border-color: #b8872a !important; }
body > .sdgv-gift-concierge .sdgv-concierge__message-form { margin: 14px 48px 0 !important; }
body > .sdgv-gift-concierge .sdgv-concierge__message-form button,
body > .sdgv-gift-concierge .sdgv-concierge__message-form button:hover { background: #17130e !important; color: #c49a47 !important; transform: none !important; }

@media (max-width: 640px) {
  body > .sdgv-gift-concierge { right: 12px !important; bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important; }
  body > .sdgv-gift-concierge .sdgv-chatbot__panel { right: 10px !important; bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important; width: calc(100vw - 20px) !important; height: min(720px, calc(100dvh - 20px)) !important; max-height: min(720px, calc(100dvh - 20px)) !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome { grid-template-columns: 1fr !important; min-height: 0 !important; padding: 30px 26px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome-art { display: none !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome h3 { font-size: 30px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__carousel-label,
  body > .sdgv-gift-concierge .sdgv-concierge__step-intro,
  body > .sdgv-gift-concierge .sdgv-concierge__controls,
  body > .sdgv-gift-concierge .sdgv-concierge__message-form { margin-left: 20px !important; margin-right: 20px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__scene { inset: 0 30px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__option { width: 174px !important; height: 218px !important; transform: translateX(calc(var(--sdgv-option-offset, 0) * 126px)) scale(var(--sdgv-option-scale, 1)) !important; }
}

/* ── Pill ↔ full-width scroll transform ─────────────────────────────────────
   JS adds/removes .sdgv-header--scrolled as user scrolls past 60px.
   Starting from full-width (.sdgv-header--full), after scrolling the header
   collapses to a floating pill centred at the top of the viewport.
   ──────────────────────────────────────────────────────────────────────── */
.sdgv-site-header {
  transition: width .38s cubic-bezier(.2,.82,.28,1),
              border-radius .38s cubic-bezier(.2,.82,.28,1),
              top .38s cubic-bezier(.2,.82,.28,1),
              padding .38s cubic-bezier(.2,.82,.28,1),
              box-shadow .38s ease;
}
.sdgv-site-header.sdgv-header--full.sdgv-header--scrolled {
  position: fixed !important;
  top: 12px !important;
  left: 50% !important;
  right: auto !important;
  width: 92% !important;
  max-width: 960px !important;
  border-radius: 9999px !important;
  transform: translateX(-50%) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.16) !important;
}

html.dark body {
  background: #0e0e0e;
  color: #ededed;
}
html.dark .sdgv-site-header {
  background: rgba(20,20,20,0.92) !important;
  border-color: rgba(255,255,255,0.08) !important;
}
html.dark .sdgv-site-header a,
html.dark .sdgv-site-header__brand {
  color: #ededed !important;
}
/* ══════════════════════════════════════════════════════════════════
   UNIVERSAL BUTTON COLOUR TOKENS  (Design Control Centre)
   All primary Vora buttons inherit bg, text and hover from the DCC
   "Buttons" section — no per-page or per-section colour overrides needed.
   ══════════════════════════════════════════════════════════════════ */
.sdgv-btn--primary,
.sdgv-btn--outline,
.sdgv-btn--balance,
.sdgv-ledger__redeem-btn:not(.is-confirmed),
.sdgv-variant-btn {
  background: var(--sdgv-btn-bg, var(--vora-on-surface)) !important;
  color: var(--sdgv-btn-text, #ffffff) !important;
}
.sdgv-btn--primary:hover,
.sdgv-btn--outline:hover,
.sdgv-btn--balance:hover,
.sdgv-ledger__redeem-btn:hover:not(:disabled):not(.is-confirmed),
.sdgv-variant-btn:hover {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-on-surface))) !important;
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)) !important;
}

/* Concierge close controls are buttons too: honour Design & Control Centre
   hover colours instead of retaining their bespoke basket/header styling. */
body > .sdgv-gift-concierge .sdgv-chatbot__close:hover,
body > .sdgv-gift-concierge .sdgv-mini-basket__close:hover {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, #001d36)) !important;
  border-color: var(--sdgv-hover-bg, var(--sdgv-btn-bg, #001d36)) !important;
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)) !important;
}

/* Concierge editorial layout: full-bleed welcome art with a soft text-safe fade,
   plus image cards with a distinct white description panel beneath the image. */
body > .sdgv-gift-concierge .sdgv-concierge__body {
  background: var(--sdgv-chatbot-panel-bg, #fbf9f4) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome {
  position: relative !important;
  display: block !important;
  min-height: 300px !important;
  overflow: hidden !important;
  padding: 52px 48% 46px 48px !important;
  background: var(--sdgv-chatbot-panel-bg, #fbf9f4) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome > div {
  position: relative !important;
  z-index: 2 !important;
  max-width: 430px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: .72 !important;
  background: var(--sdgv-chatbot-panel-bg, #fbf9f4) !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 26%, #000 58%, #000 100%) !important;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 26%, #000 58%, #000 100%) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center right !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option {
  background: var(--sdgv-chatbot-bot-bg, #fff) !important;
  border-radius: var(--sdgv-chatbot-card-radius, 16px) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option::before {
  height: 34% !important;
  background: var(--sdgv-chatbot-bot-bg, #fff) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-image {
  height: 66% !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-image-title {
  position: absolute !important;
  z-index: 3 !important;
  right: 10px !important;
  bottom: 34% !important;
  left: 10px !important;
  margin: 0 !important;
  padding: 22px 8px 8px !important;
  color: var(--sdgv-chatbot-card-image-text, #fff) !important;
  font-family: var(--sdgv-chatbot-font-family, var(--vora-serif, Georgia, serif)) !important;
  font-size: 20px !important;
  font-style: italic !important;
  font-weight: 500 !important;
  line-height: 1.05 !important;
  text-align: center !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.68) !important;
  background: linear-gradient(transparent, rgba(0,0,0,.42)) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-content {
  position: absolute !important;
  z-index: 3 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: flex !important;
  height: 34% !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 14px !important;
  background: var(--sdgv-chatbot-bot-bg, #fff) !important;
  color: var(--sdgv-chatbot-bot-text, #172033) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-icon { display: none !important; }
body > .sdgv-gift-concierge .sdgv-concierge__option-content small {
  display: block !important;
  margin: 0 !important;
  color: var(--sdgv-chatbot-bot-text, #172033) !important;
  font-family: var(--sdgv-chatbot-font-family, var(--vora-sans, sans-serif)) !important;
  font-size: 11px !important;
  font-style: normal !important;
  line-height: 1.35 !important;
  text-align: center !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-description-empty { opacity: .55; }
body > .sdgv-gift-concierge .sdgv-chatbot__panel,
body > .sdgv-gift-concierge .sdgv-concierge__welcome h3,
body > .sdgv-gift-concierge .sdgv-concierge__question,
body > .sdgv-gift-concierge .sdgv-concierge__option-image-title {
  font-family: var(--sdgv-chatbot-font-family, var(--vora-sans, sans-serif)) !important;
}
@media (max-width: 640px) {
  body > .sdgv-gift-concierge .sdgv-concierge__welcome {
    min-height: 270px !important;
    padding: 38px 24% 36px 26px !important;
  }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome-art { display: block !important; }
}

/* ══════════════════════════════════════════════════════════════════
   v2.9.15 — CONCIERGE USABILITY & LAYOUT (final authoritative layer)
   1. Welcome content uses a two-column hero row: copy on the left,
      cover image on the right, then cards continue below the row.
   2. Option cards: title and description are padded away from the
      card edges, centred, and wrap safely inside the card.
   3. Arrows / send icons are dead-centred inside every button.
   This block intentionally comes last so it wins over all earlier
   editorial layers at equal specificity.
   ══════════════════════════════════════════════════════════════════ */

/* ── 1. Welcome hero: copy left + cover image right ── */
body > .sdgv-gift-concierge .sdgv-concierge__welcome {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 42%) !important;
  gap: 32px !important;
  align-items: center !important;
  min-height: 280px !important;
  margin: 0 !important;
  padding: 34px 44px 32px 48px !important;
  overflow: hidden !important;
  border-bottom: 1px solid rgba(21,18,13,.1) !important;
  background: var(--sdgv-chatbot-panel-bg, #fbf9f4) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art {
  position: relative !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  order: 0 !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 214px !important;
  max-height: 250px !important;
  aspect-ratio: 1.18 / 1 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  background: var(--sdgv-chatbot-panel-bg, #fbf9f4) !important;
  line-height: 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center right !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: linear-gradient(90deg, var(--sdgv-chatbot-panel-bg, #fbf9f4) 0%, rgba(251,249,244,.18) 34%, rgba(251,249,244,0) 62%) !important;
}
/* Fallback (no image uploaded): keep a slim branded band with the gift icon */
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art:not(:has(img)) {
  display: grid !important;
  place-items: center !important;
  min-height: 214px !important;
  color: #fff !important;
  background: linear-gradient(140deg, #ead9b3, #b8872a 55%, #50412e) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art svg {
  width: 54px !important;
  height: 54px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome > div {
  position: relative !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  z-index: 2 !important;
  max-width: 430px !important;
  margin: 0 !important;
  padding: 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome .sdgv-concierge__eyebrow {
  margin: 0 0 8px !important;
  text-align: left !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome h3 {
  margin: 0 !important;
  font-size: 33px !important;
  line-height: 1.06 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome > div > p:last-child {
  max-width: 460px !important;
  margin: 12px 0 0 !important;
  font-size: 15px !important;
}

/* ── 2. Option cards: text padded off the edges, centred, wrapping ── */
body > .sdgv-gift-concierge .sdgv-concierge__option,
body > .sdgv-gift-concierge .sdgv-concierge__option:has(> .sdgv-concierge__option-image[src]:not([src=""])) {
  justify-content: flex-end !important;
  overflow: hidden !important;
  padding: 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option * {
  box-sizing: border-box !important;
}
/* Image occupies exactly the top 66%, footer exactly the bottom 34% */
body > .sdgv-gift-concierge .sdgv-concierge__option-image {
  inset: 0 0 auto 0 !important;
  width: 100% !important;
  height: 66% !important;
  border-radius: 0 !important;
  opacity: 1 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option::before {
  inset: auto 0 0 0 !important;
  height: 34% !important;
  border-radius: 0 !important;
}
/* Title overlay: full card width, gradient hugging the image/footer seam */
body > .sdgv-gift-concierge .sdgv-concierge__option-image-title {
  position: absolute !important;
  z-index: 3 !important;
  right: 0 !important;
  bottom: 34% !important;
  left: 0 !important;
  margin: 0 !important;
  padding: 28px 16px 9px !important;
  font-size: 19px !important;
  line-height: 1.1 !important;
  text-align: center !important;
  overflow-wrap: break-word !important;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.5)) !important;
}
/* Footer: description (or title when descriptions are off), fully inside the card */
body > .sdgv-gift-concierge .sdgv-concierge__option-content {
  position: absolute !important;
  z-index: 3 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: flex !important;
  width: 100% !important;
  height: 34% !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 8px 16px !important;
  border-top: 1px solid rgba(21,18,13,.07) !important;
  text-align: center !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-content small {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  opacity: 1 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  text-align: center !important;
}
/* Plain cards (no description): title lives in the footer instead */
body > .sdgv-gift-concierge .sdgv-concierge__option-title {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  color: var(--sdgv-chatbot-bot-text, #17130e) !important;
  font-family: var(--sdgv-chatbot-font-family, var(--vora-serif, Georgia, serif)) !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1.12 !important;
  text-align: center !important;
  text-shadow: none !important;
  overflow-wrap: break-word !important;
}

/* ── 3. Arrows and send icons: dead-centred inside their buttons ── */
body > .sdgv-gift-concierge .sdgv-concierge__arrow,
body > .sdgv-gift-concierge .sdgv-concierge__message-form button,
body > .sdgv-gift-concierge .sdgv-chatbot__close,
body > .sdgv-gift-concierge .sdgv-chatbot__basket--header,
body > .sdgv-gift-concierge .sdgv-mini-basket__close {
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__arrow svg,
body > .sdgv-gift-concierge .sdgv-concierge__message-form button svg,
body > .sdgv-gift-concierge .sdgv-chatbot__close svg,
body > .sdgv-gift-concierge .sdgv-chatbot__basket--header .sdgv-chatbot__basket-icon,
body > .sdgv-gift-concierge .sdgv-mini-basket__close svg {
  display: block !important;
  margin: 0 !important;
  flex: none !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__continue,
body > .sdgv-gift-concierge .sdgv-concierge__back,
body > .sdgv-gift-concierge .sdgv-concierge__view-all {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  line-height: 1 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__continue svg,
body > .sdgv-gift-concierge .sdgv-concierge__back svg,
body > .sdgv-gift-concierge .sdgv-concierge__view-all svg {
  display: block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  position: relative !important;
  top: 0 !important;
}

/* ── Results screen alignment (kept from previous fix) ── */
body > .sdgv-gift-concierge .sdgv-concierge__results {
  padding: 22px 48px 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__results .sdgv-concierge__eyebrow {
  margin-top: 0 !important;
  text-align: left !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__results .sdgv-concierge__question {
  margin-top: 10px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__result-grid {
  margin-top: 16px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__result-card div {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  padding: 12px 13px 13px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__result-card small {
  min-height: 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__result-card em {
  margin-top: auto !important;
  padding-top: 7px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__results .sdgv-concierge__controls {
  margin: 18px 0 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__view-all {
  border: 1px solid rgba(21,18,13,.2) !important;
  background: transparent !important;
  color: #17130e !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__view-all:hover {
  border-color: #b8872a !important;
  background: transparent !important;
  color: #17130e !important;
}

/* ── 4. Mobile: stack neatly, keeping the cover visible before the cards ── */
@media (max-width: 640px) {
  body > .sdgv-gift-concierge .sdgv-concierge__welcome {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    min-height: 0 !important;
    padding: 24px 22px 22px !important;
  }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome-art {
    grid-column: 1 !important;
    grid-row: 2 !important;
    display: block !important;
    min-height: 170px !important;
    max-height: 210px !important;
  }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome-art:not(:has(img)) {
    display: grid !important;
    min-height: 150px !important;
  }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome > div {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome h3 { font-size: 27px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome > div > p:last-child { font-size: 14px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__carousel-label,
  body > .sdgv-gift-concierge .sdgv-concierge__step-intro { margin-left: 20px !important; margin-right: 20px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__option-image-title { font-size: 17px !important; padding: 22px 14px 8px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__option-title { font-size: 17px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__option-content { padding: 7px 14px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__option-content small { -webkit-line-clamp: 2 !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__results { padding: 18px 20px 0 !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__result-grid { gap: 10px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__result-card { grid-template-columns: 104px 1fr !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__result-card img,
  body > .sdgv-gift-concierge .sdgv-concierge__result-placeholder { height: 100% !important; min-height: 104px !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__results .sdgv-concierge__controls { flex-wrap: wrap !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__results .sdgv-concierge__view-all { flex: 1 1 100% !important; }
}

/* v2.9.17 - final storefront, basket and checkout refinements */
body > .sdgv-gift-concierge .sdgv-mini-basket__primary,
body > .sdgv-gift-concierge .sdgv-mini-basket__primary:visited,
body > .sdgv-gift-concierge .sdgv-mini-basket__primary:hover,
body > .sdgv-gift-concierge .sdgv-mini-basket__primary:focus-visible,
.sdgv-gift-concierge .sdgv-mini-basket__primary,
.sdgv-gift-concierge .sdgv-mini-basket__primary:visited,
.sdgv-gift-concierge .sdgv-mini-basket__primary:hover,
.sdgv-gift-concierge .sdgv-mini-basket__primary:focus-visible {
  color: #fff !important;
}

.sdgv-cinematic-hero--media {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.sdgv-cinematic-hero--media .sdgv-cinematic-hero__media,
.sdgv-cinematic-hero--media::after {
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
}
.sdgv-cinematic-hero--media .sdgv-cinematic-hero__media {
  width: 100% !important;
  height: 100% !important;
  background-size: cover !important;
  background-position: var(--sdgv-hero-media-x, 50%) var(--sdgv-hero-media-y, 50%) !important;
}

.sdgv-wrap--checkout .sdgv-voucher-type-grid,
.sdgv-wrap--checkout .sdgv-voucher-type-grid[style] {
  align-items: stretch !important;
}
.sdgv-wrap--checkout .sdgv-type-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
.sdgv-wrap--checkout .sdgv-type-card__copy {
  justify-items: center !important;
  text-align: center !important;
}
.sdgv-wrap--checkout .sdgv-type-card__price {
  margin: 6px 0 0 !important;
}

@media (max-width: 760px) {
  .sdgv-wrap--checkout {
    padding-left: clamp(14px, 4vw, 24px) !important;
    padding-right: clamp(14px, 4vw, 24px) !important;
  }
  .sdgv-basket-layout,
  .sdgv-basket-layout[style],
  .sdgv-basket-items,
  .sdgv-basket-options,
  .sdgv-basket-summary,
  .sdgv-basket-summary[style] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .sdgv-basket-layout,
  .sdgv-basket-layout[style] {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
  }
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    display: grid !important;
    grid-template-columns: 76px minmax(0, 1fr) !important;
    gap: 14px 16px !important;
    align-items: start !important;
    padding: 16px 0 !important;
    min-height: 0 !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: 76px !important;
    height: 76px !important;
    grid-row: span 2 !important;
    border-radius: 14px !important;
  }
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    min-width: 0 !important;
    overflow: visible !important;
  }
  .sdgv-basket-item__title,
  .sdgv-basket-item__title[style] {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-size: 19px !important;
    line-height: 1.18 !important;
  }
  .sdgv-basket-item__variant,
  .sdgv-basket-item__price,
  .sdgv-basket-item__variant[style],
  .sdgv-basket-item__price[style] {
    white-space: normal !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    grid-column: 2 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
  }
  .sdgv-basket-item__remove,
  .sdgv-basket-item__remove[style] {
    margin-left: auto !important;
    padding: 9px 0 !important;
    white-space: nowrap !important;
  }
  .sdgv-basket-summary,
  .sdgv-basket-summary[style] {
    padding: 22px 16px !important;
    border-radius: 18px !important;
  }
}

@media (max-width: 430px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: 64px !important;
    height: 64px !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    grid-column: 1 / -1 !important;
  }
}

/* ============================================================
   Phase 6.5.6 — authoritative basket and checkout presentation
   ============================================================ */
.sdgv-wrap[data-sdgv-basket-surface="full"],
.sdgv-checkout-shell { overflow-x: clip; }
.sdgv-basket-status {
  min-height: 1.4em;
  margin: 0 0 12px;
  color: var(--vora-outline, #59697a);
  font: 600 13px/1.4 var(--vora-sans, sans-serif);
}
.sdgv-basket-status:empty { min-height: 0; margin: 0; }
.sdgv-basket-status.is-error { color: var(--vora-error, #a52a2a); }
.sdgv-basket-item.is-loading { opacity: .58; pointer-events: none; }
.sdgv-basket-item__placeholder {
  width: 100%; height: 100%; display: grid; place-items: center;
  background: linear-gradient(145deg, #dde5e7, #f2ede4);
  color: #65727c; font: 800 11px/1 var(--vora-sans, sans-serif);
  letter-spacing: .12em; text-transform: uppercase;
}
.sdgv-basket-item__money,
.sdgv-summary-item__money { margin: 10px 0 0; display: grid; gap: 5px; }
.sdgv-basket-item__money > div,
.sdgv-summary-item__money > div { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.sdgv-basket-item__money dt,
.sdgv-summary-item__money dt { color: var(--vora-outline, #59697a); font-size: 12px; }
.sdgv-basket-item__money dd,
.sdgv-summary-item__money dd { margin: 0; color: var(--vora-on-surface, #172331); font-weight: 700; white-space: nowrap; }
.sdgv-basket-item__line-total { font-size: 16px; }
.sdgv-basket-item__error { max-width: 52ch; }
.sdgv-basket-summary__primary,
.sdgv-basket-summary__secondary { color: #fff; }

.sdgv-checkout-preview-notice {
  margin: 0 0 24px; padding: 14px 18px; display: flex; flex-wrap: wrap; gap: 6px 14px;
  border: 1px solid rgba(115,92,0,.24); border-left: 4px solid var(--vora-tertiary, #735c00);
  border-radius: 10px; background: #fff8e7; color: #4c3b0d;
  font: 500 14px/1.5 var(--vora-sans, sans-serif);
}
.sdgv-checkout-preview-notice strong { font-weight: 800; }
.sdgv-checkout-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.sdgv-checkout-fieldset[disabled] { opacity: 1; }
.sdgv-checkout-fieldset[disabled] :is(input, textarea, button, label, .sdgv-env-drop) { cursor: not-allowed; }
.sdgv-checkout-shell .sdgv-checkout-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  grid-template-areas: "form summary"; gap: clamp(28px, 4vw, 54px); align-items: start;
}
.sdgv-checkout-shell .sdgv-checkout-form { grid-area: form; min-width: 0; }
.sdgv-checkout-shell .sdgv-checkout-sidebar {
  grid-area: summary; position: sticky; top: 104px; max-height: calc(100dvh - 128px);
  overflow: auto; overscroll-behavior: contain;
}
.sdgv-summary-item__info { min-width: 0; }
.sdgv-summary-item__placeholder {
  display: grid; place-items: center; background: linear-gradient(145deg, #dde5e7, #f2ede4);
  color: #65727c; font: 800 11px/1 var(--vora-sans, sans-serif);
  letter-spacing: .12em; text-transform: uppercase;
}
.sdgv-summary-item__money dt,
.sdgv-summary-item__money dd { font-size: 12px; }
.sdgv-summary-presentation-fee {
  display: flex; justify-content: space-between; gap: 18px; padding: 12px 0;
  border-bottom: 1px solid rgba(195,198,207,.22); color: var(--vora-secondary, #405366); font-size: 13px;
}
.sdgv-summary-presentation-fee[hidden] { display: none; }
.sdgv-checkout-consent {
  margin: 22px 0 16px; padding: 15px; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 11px;
  border: 1px solid rgba(0,29,54,.14); border-radius: 10px; background: rgba(255,255,255,.66);
  color: var(--vora-secondary, #405366); font-size: 13px; line-height: 1.55;
}
.sdgv-checkout-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--vora-primary, #001d36); }
.sdgv-checkout-legal { margin: 14px 0 0; color: var(--vora-outline, #59697a); font-size: 12px; line-height: 1.55; }
.sdgv-gateway-tab[aria-selected="true"] { box-shadow: inset 0 -2px 0 currentColor; }
.sdgv-gateway-tab:focus-visible,
.sdgv-checkout-consent:focus-within { outline: 3px solid color-mix(in srgb, var(--vora-tertiary, #735c00) 40%, transparent); outline-offset: 3px; }

body > .sdgv-gift-concierge,
body > .sdgv-chatbot {
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
}
body > .sdgv-gift-concierge > .sdgv-chatbot__launcher,
body > .sdgv-chatbot > .sdgv-chatbot__launcher {
  transform: translateY(calc(-1 * var(--sdgv-collision-offset, 0px)));
  transition: transform .18s ease;
}
.sdgv-mini-basket[aria-hidden="true"],
.sdgv-mini-basket__backdrop[hidden] { display: none !important; }
.sdgv-mini-basket__price small,
.sdgv-mini-basket__line small { display: block; color: var(--vora-outline, #59697a); font-size: 10px; font-weight: 600; letter-spacing: .04em; }

@media (max-width: 760px) {
  .sdgv-checkout-shell .sdgv-checkout-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "summary" "form";
    gap: 24px;
  }
  .sdgv-checkout-shell .sdgv-checkout-sidebar { position: static; max-height: none; overflow: visible; }
  .sdgv-checkout-preview-notice { flex-direction: column; }
  .sdgv-basket-item__money { width: min(100%, 260px); }
  .sdgv-basket-item__money > div { gap: 12px; }
  body > .sdgv-gift-concierge.sdgv-chatbot--collision-mobile .sdgv-chatbot__launcher,
  body > .sdgv-chatbot.sdgv-chatbot--collision-mobile .sdgv-chatbot__launcher,
  body > .sdgv-gift-concierge.sdgv-chatbot--keyboard-open .sdgv-chatbot__launcher,
  body > .sdgv-chatbot.sdgv-chatbot--keyboard-open .sdgv-chatbot__launcher { opacity: 0; visibility: hidden; pointer-events: none; }
}

@media (prefers-reduced-motion: reduce) {
  body > .sdgv-gift-concierge > .sdgv-chatbot__launcher,
  body > .sdgv-chatbot > .sdgv-chatbot__launcher { transition: none; }
}

/* v2.9.22 - basket quantity alignment, concierge hero fill and voucher type labels */
.sdgv-qty,
.sdgv-mini-basket__qty {
  align-items: center !important;
}
.sdgv-qty__btn,
.sdgv-qty__btn[style],
.sdgv-mini-basket__qty button {
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
.sdgv-qty__input,
.sdgv-qty__input[style],
.sdgv-mini-basket__qty input {
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  -webkit-appearance: none !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.sdgv-qty__input::-webkit-outer-spin-button,
.sdgv-qty__input::-webkit-inner-spin-button,
.sdgv-mini-basket__qty input::-webkit-outer-spin-button,
.sdgv-mini-basket__qty input::-webkit-inner-spin-button {
  margin: 0 !important;
  -webkit-appearance: none !important;
}
.sdgv-mini-basket__qty {
  grid-template-columns: 34px 42px 34px !important;
}
.sdgv-mini-basket__qty button,
.sdgv-mini-basket__qty input {
  height: 34px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome {
  align-items: stretch !important;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 48%) !important;
  min-height: 342px !important;
  padding: 0 0 0 48px !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome > div:not(.sdgv-concierge__welcome-art) {
  align-self: center !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  padding: 38px 34px 38px 0 !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art {
  align-self: stretch !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 342px !important;
  max-height: none !important;
  aspect-ratio: auto !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.sdgv-wrap--checkout .sdgv-type-card__label,
.sdgv-wrap--checkout #type-animated-card .sdgv-type-card__label {
  max-width: none !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  letter-spacing: .12em !important;
  overflow-wrap: normal !important;
  white-space: normal !important;
}
.sdgv-wrap--checkout .sdgv-type-card__copy {
  gap: 7px !important;
}

@media (max-width: 760px) {
  body > .sdgv-gift-concierge .sdgv-concierge__welcome {
    grid-template-columns: 1fr !important;
    padding: 30px 26px !important;
    min-height: 0 !important;
  }
  body > .sdgv-gift-concierge .sdgv-concierge__welcome > div:not(.sdgv-concierge__welcome-art) {
    padding: 0 !important;
  }
}

/* v2.9.23 - mobile basket image and description alignment */
@media (max-width: 760px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    display: grid !important;
    grid-template-columns: clamp(76px, 18vw, 96px) minmax(0, 1fr) !important;
    grid-template-areas:
      "image info"
      "actions actions" !important;
    column-gap: clamp(14px, 4vw, 22px) !important;
    row-gap: 18px !important;
    align-items: start !important;
    padding: 18px 0 20px !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    grid-area: image !important;
    grid-row: auto !important;
    width: clamp(76px, 18vw, 96px) !important;
    height: clamp(76px, 18vw, 96px) !important;
    align-self: start !important;
  }
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    grid-area: info !important;
    align-self: start !important;
    display: flex !important;
    min-height: clamp(76px, 18vw, 96px) !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 0 clamp(8px, 2.5vw, 18px) 0 0 !important;
  }
  .sdgv-basket-item__title,
  .sdgv-basket-item__title[style] {
    margin: 0 0 7px !important;
    font-size: clamp(22px, 5.8vw, 29px) !important;
    line-height: 1.05 !important;
  }
  .sdgv-basket-item__variant,
  .sdgv-basket-item__variant[style] {
    margin: 0 0 8px !important;
    font-size: clamp(17px, 4.5vw, 23px) !important;
    line-height: 1.2 !important;
  }
  .sdgv-basket-item__price,
  .sdgv-basket-item__price[style] {
    margin: 0 !important;
    font-size: clamp(18px, 4.8vw, 23px) !important;
    line-height: 1.15 !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    grid-area: actions !important;
    grid-column: 1 / -1 !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(18px, 7vw, 42px) !important;
    padding: 0 !important;
  }
  .sdgv-basket-item__remove,
  .sdgv-basket-item__remove[style] {
    margin-left: auto !important;
  }
}

@media (max-width: 430px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    grid-template-columns: 76px minmax(0, 1fr) !important;
    column-gap: 14px !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style],
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    min-height: 76px !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: 76px !important;
    height: 76px !important;
  }
}

/* v2.9.24 - refine mobile basket padding and restore balanced sizing */
@media (max-width: 760px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    grid-template-columns: clamp(88px, 21vw, 108px) minmax(0, 1fr) !important;
    column-gap: clamp(18px, 4.5vw, 26px) !important;
    row-gap: 20px !important;
    padding: clamp(22px, 5.5vw, 30px) clamp(24px, 6vw, 34px) !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: clamp(88px, 21vw, 108px) !important;
    height: clamp(88px, 21vw, 108px) !important;
    min-height: 0 !important;
  }
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    min-height: clamp(88px, 21vw, 108px) !important;
    justify-content: flex-start !important;
    padding: 2px 0 0 !important;
  }
  .sdgv-basket-item__title,
  .sdgv-basket-item__title[style] {
    margin: 0 0 6px !important;
    font-size: clamp(18px, 4.5vw, 22px) !important;
    line-height: 1.12 !important;
  }
  .sdgv-basket-item__variant,
  .sdgv-basket-item__variant[style] {
    margin: 0 0 7px !important;
    font-size: clamp(16px, 4vw, 19px) !important;
    line-height: 1.2 !important;
  }
  .sdgv-basket-item__price,
  .sdgv-basket-item__price[style] {
    font-size: clamp(17px, 4.2vw, 20px) !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    display: grid !important;
    grid-template-columns: clamp(88px, 21vw, 108px) minmax(0, 1fr) auto !important;
    column-gap: clamp(18px, 4.5vw, 26px) !important;
    row-gap: 0 !important;
    justify-content: stretch !important;
    width: 100% !important;
  }
  .sdgv-basket-item__actions .sdgv-qty {
    grid-column: 2 !important;
    justify-self: start !important;
  }
  .sdgv-basket-item__remove,
  .sdgv-basket-item__remove[style] {
    grid-column: 3 !important;
    justify-self: end !important;
    align-self: center !important;
    margin-left: 0 !important;
  }
}

@media (max-width: 430px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    grid-template-columns: 82px minmax(0, 1fr) !important;
    padding: 22px 22px !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: 82px !important;
    height: 82px !important;
  }
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    min-height: 82px !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    grid-template-columns: 82px minmax(0, 1fr) auto !important;
    column-gap: 14px !important;
  }
}

/* v2.9.25 - centre mobile basket image/details and calm text scale */
@media (max-width: 760px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    grid-template-columns: clamp(108px, 25vw, 128px) minmax(210px, 280px) !important;
    justify-content: center !important;
    align-items: center !important;
    column-gap: clamp(20px, 5vw, 32px) !important;
    row-gap: 22px !important;
    padding: clamp(24px, 6vw, 34px) clamp(22px, 6vw, 38px) !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: clamp(108px, 25vw, 128px) !important;
    height: clamp(108px, 25vw, 128px) !important;
    justify-self: end !important;
    align-self: center !important;
  }
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    align-self: center !important;
    justify-content: center !important;
    min-height: clamp(108px, 25vw, 128px) !important;
    max-width: 280px !important;
    padding: 0 !important;
  }
  .sdgv-basket-item__title,
  .sdgv-basket-item__title[style] {
    margin: 0 0 5px !important;
    font-size: clamp(17px, 4.1vw, 21px) !important;
    line-height: 1.12 !important;
  }
  .sdgv-basket-item__variant,
  .sdgv-basket-item__variant[style] {
    margin: 0 0 6px !important;
    font-size: clamp(15px, 3.8vw, 18px) !important;
    line-height: 1.22 !important;
  }
  .sdgv-basket-item__price,
  .sdgv-basket-item__price[style] {
    font-size: clamp(15px, 3.8vw, 18px) !important;
    line-height: 1.15 !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    grid-template-columns: clamp(108px, 25vw, 128px) minmax(210px, 280px) auto !important;
    justify-content: center !important;
    column-gap: clamp(20px, 5vw, 32px) !important;
  }
  .sdgv-basket-item__actions .sdgv-qty {
    grid-column: 2 !important;
    justify-self: start !important;
  }
}

@media (max-width: 430px) {
  .sdgv-basket-item,
  .sdgv-basket-item[style] {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    justify-content: stretch !important;
    column-gap: 18px !important;
    padding: 24px 22px !important;
  }
  .sdgv-basket-item__image,
  .sdgv-basket-item__image[style] {
    width: 96px !important;
    height: 96px !important;
  }
  .sdgv-basket-item__info,
  .sdgv-basket-item__info[style] {
    min-height: 96px !important;
    max-width: none !important;
  }
  .sdgv-basket-item__actions,
  .sdgv-basket-item__actions[style] {
    grid-template-columns: minmax(0, 1fr) auto !important;
    justify-content: stretch !important;
    column-gap: 20px !important;
  }
  .sdgv-basket-item__actions .sdgv-qty {
    grid-column: 1 !important;
    justify-self: start !important;
  }
  .sdgv-basket-item__remove,
  .sdgv-basket-item__remove[style] {
    grid-column: 2 !important;
    justify-self: end !important;
  }
}
