/* Vora premium public system. This is deliberately loaded after the legacy
   compatibility stylesheet so customer pages share one visual language. */
.sdgv-wrap {
  min-height: 100vh;
  background: var(--vora-page-bg, #fbfaf7);
  color: var(--vora-primary, #001d36);
  font-family: var(--sdgv-body-font, var(--vora-sans, Arial, sans-serif));
}
.sdgv-wrap *, .sdgv-wrap *::before, .sdgv-wrap *::after { box-sizing: border-box; }
.sdgv-wrap a { color: inherit; }
/* Do not rely on browser focus-modality heuristics: every focused customer
   control receives the same tokenized, high-contrast ring. */
.sdgv-wrap button:focus, .sdgv-wrap a:focus, .sdgv-wrap input:focus, .sdgv-wrap textarea:focus, .sdgv-wrap select:focus {
  outline-style: solid;
  outline-width: var(--vora-focus-width, 3px);
  outline-color: var(--vora-focus-color, var(--vora-accent, #b8872a));
  outline-offset: var(--vora-focus-offset, 3px);
}

/* ── Customer component primitives ──────────────────────────── */
/* New component names and retained compatibility hooks intentionally share
   declarations. Templates can migrate without visual drift or a flag day. */
.sdgv-page-heading,
.sdgv-checkout-header,
.sdgv-account-header,
.sdgv-redeem-header {
  width: 100%;
  margin-block-end: var(--vora-space-6, 2rem);
}
.sdgv-page-heading__title,
.sdgv-page-title {
  margin-block-start: var(--vora-space-2, .5rem);
  color: var(--vora-on-surface, #001d36);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: var(--vora-type-xl, clamp(2rem, 4vw, 3.25rem));
  font-style: italic;
  font-weight: 400;
  line-height: 1.1;
}
.sdgv-card,
.sdgv-checkout-section,
.sdgv-personalise-section,
.sdgv-checkout-sidebar,
.sdgv-basket-summary,
.sdgv-summary,
.sdgv-account-card,
.sdgv-redeem-card {
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 82%, transparent);
  border-radius: var(--vora-radius-lg, 1rem);
  background: var(--vora-surface, #fff);
  box-shadow: var(--vora-shadow, 0 18px 48px rgba(0,29,54,.08));
}
.sdgv-form,
.sdgv-checkout-form,
.sdgv-account-form,
.sdgv-redeem-form { display: grid; gap: var(--vora-space-5, 1.5rem); }
.sdgv-field :where(input, textarea, select),
.sdgv-input,
.sdgv-textarea,
.sdgv-select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: var(--vora-radius, .75rem);
  background: var(--vora-surface, #fff);
  color: var(--vora-on-surface, #001d36);
  font: inherit;
}
.sdgv-notice,
.sdgv-status,
.sdgv-route-status,
.sdgv-discount-msg,
.sdgv-basket-blocked-message,
.sdgv-basket-item__error {
  padding: var(--vora-space-3, .75rem) var(--vora-space-4, 1rem);
  border-radius: var(--vora-radius, .75rem);
  background: var(--vora-surf-low, #eef4ff);
  color: var(--vora-on-surface, #001d36);
  font-size: var(--vora-type-sm, .8125rem);
  line-height: 1.5;
}
.sdgv-status[role="alert"],
.sdgv-route-status[role="alert"],
.sdgv-basket-blocked-message,
.sdgv-basket-item__error { background: var(--sdgv-danger-l, #ffdad6); color: var(--vora-error, #ba1a1a); }
.sdgv-dialog,
.sdgv-chatbot__panel,
.sdgv-drawer,
.sdgv-sidemenu,
.sdgv-mini-basket {
  background: var(--vora-surface, #fff);
  color: var(--vora-on-surface, #001d36);
  box-shadow: var(--vora-shadow-lg, 0 24px 64px rgba(0,29,54,.14));
}
.sdgv-summary,
.sdgv-basket-summary { width: 100%; padding: var(--vora-space-5, 1.5rem); }
.sdgv-price,
.sdgv-card__price,
.sdgv-sv__price,
.sdgv-basket-item__price,
.sdgv-summary__total { font-variant-numeric: tabular-nums; }
.sdgv-cta,
.sdgv-btn,
.sdgv-cinematic-hero__actions a,
.sdgv-account-submit {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--vora-radius-full, 9999px);
  font-size: var(--vora-type-xs, .6875rem);
  font-weight: 700;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}
.sdgv-empty-state,
.sdgv-error-state,
.sdgv-empty,
.sdgv-basket-empty,
.sdgv-concierge__empty {
  width: 100%;
  padding: var(--vora-space-8, 5rem) var(--vora-space-5, 1.5rem);
  text-align: center;
}
.sdgv-empty-state--contained { max-width: 45rem; margin-inline: auto; }
.sdgv-empty-state__icon { display: block; margin: 0 auto var(--vora-space-5, 1.5rem); color: var(--vora-primary, #001d36); opacity: .2; }
.sdgv-empty-state__title {
  margin-block-end: var(--vora-space-3, .75rem);
  color: var(--vora-on-surface, #001d36);
  font-family: var(--vora-serif, Georgia, serif);
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-style: italic;
  font-weight: 400;
}
.sdgv-empty-state__copy { max-width: 38.75rem; margin: 0 auto var(--vora-space-6, 2rem); color: var(--vora-muted, #6f7680); font-size: var(--vora-type-md, 1rem); line-height: 1.7; }
.sdgv-empty-state__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--vora-space-3, .75rem); }
.sdgv-choice-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.sdgv-checkout-section__intro {
  margin-block-end: var(--vora-space-4, 1rem);
  color: var(--vora-muted, #6f7680);
  font-size: var(--vora-type-sm, .8125rem);
  line-height: 1.5;
}
.sdgv-env-preview { margin-block-end: var(--vora-space-2, .5rem); }
.sdgv-env-preview__image { max-height: 5rem; border-radius: var(--vora-radius, .75rem); object-fit: cover; }
.sdgv-env-uploading { color: var(--vora-muted, #6f7680); font-size: var(--vora-type-xs, .6875rem); }
.sdgv-envelope-colours { display: flex; align-items: center; flex-wrap: wrap; gap: var(--vora-space-2, .5rem); }
.sdgv-envelope-swatch-label { position: relative; cursor: pointer; }
.sdgv-envelope-swatch-control { position: absolute; inset: 0 auto auto 0; width: 2rem; height: 2rem; opacity: 0; cursor: pointer; }
.env-swatch {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  border: 2px solid rgba(0, 0, 0, .12);
  border-radius: 50%;
  background: var(--sdgv-env-swatch, #c9a96e);
  transition: outline-color var(--vora-motion-fast, 150ms) var(--vora-ease, ease);
}
.env-swatch--custom { background: conic-gradient(red, yellow, lime, cyan, blue, magenta, red); }
.env-swatch.is-selected { outline: 2px solid var(--vora-accent, #b8872a); outline-offset: 2px; }
.sdgv-envelope-swatch-control:focus-visible + .env-swatch { outline: var(--vora-focus-width, 2px) solid var(--vora-focus-color, #b8872a); outline-offset: var(--vora-focus-offset, 3px); }
.sdgv-discount-code-input { letter-spacing: .0625rem; text-transform: uppercase; }
.sdgv-summary-discount__saving { color: var(--sdgv-success, #146c43); }

@media (prefers-reduced-motion: reduce) {
  .sdgv-wrap *, .sdgv-wrap *::before, .sdgv-wrap *::after {
    scroll-behavior: auto;
    animation-duration: .01ms;
    animation-iteration-count: 1;
    transition-duration: .01ms;
  }
  .sdgv-concierge__option.is-selected:hover { transform: none; }
}

/* ── Shared content width token ────────────────────────────────── */
/* All storefront pages use the same max-width and horizontal padding
   so the header, content, and footer edges are vertically aligned.    */
.sdgv-site-header__inner{position:relative;display:grid;grid-template-columns:1fr auto 1fr;width:min(1180px,calc(100% - 48px));min-height:70px;margin:auto;align-items:center;z-index:10}.sdgv-site-header{position:relative;z-index:10;background:inherit}.sdgv-site-header__links,.sdgv-site-header__actions{display:flex;align-items:center;gap:28px}.sdgv-site-header__links a{font-family:var(--vora-serif,Georgia,serif);font-size:14px;text-decoration:none;color:var(--vora-on-surface,#001d36);border:none!important;outline:none!important;box-shadow:none!important;background:none!important}.sdgv-site-header__links a:focus-visible{outline:2px solid var(--vora-tertiary,#735c00)!important;outline-offset:2px}.sdgv-site-header__brand{color:var(--vora-primary,#001d36);font-family:var(--vora-serif,Georgia,serif);font-size:38px;font-weight:500;letter-spacing:.17em;text-decoration:none;text-transform:uppercase}.sdgv-site-header__brand img{display:block;max-width:150px;max-height:42px;object-fit:contain}.sdgv-site-header__actions{justify-content:flex-end}.sdgv-site-header__account{display:inline-flex;min-height:36px;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--vora-border,#e7dfd2);border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}.sdgv-site-header__account svg,.sdgv-site-header__basket svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sdgv-site-header__basket{position:relative;display:grid;width:42px;height:42px;place-items:center;text-decoration:none}.sdgv-site-header__basket .sdgv-basket-count{position:absolute;top:0;right:0;display:grid;min-width:17px;height:17px;place-items:center;padding:0 4px;border-radius:50%;background:var(--vora-accent,#b8872a);color:#fff;font-size:9px;font-weight:800}.sdgv-site-header__basket .sdgv-basket-count[hidden]{display:none}.sdgv-site-header__mobile-menu{display:none}

/* ── Footer: matches header width ─────────────────────────────── */
.sdgv-site-footer{display:grid;grid-template-columns:auto 1fr auto;width:min(1180px,calc(100% - 48px));min-height:100px;margin:auto;align-items:center;gap:30px;position:relative;z-index:10}.sdgv-site-footer__brand{font-family:var(--vora-serif,Georgia,serif);font-size:28px;letter-spacing:.15em;text-transform:uppercase}.sdgv-site-footer nav{display:flex;justify-content:center;gap:24px}.sdgv-site-footer a,.sdgv-site-footer small{color:var(--vora-muted,#6f7680);font-size:11px;text-decoration:none}

/* Storefront */
.sdgv-premium-section, .sdgv-premium-benefits, .sdgv-premium-concierge-banner, .sdgv-premium-trust-strip { width: min(1180px, calc(100% - 48px)); }
.sdgv-cinematic-hero { width: min(1180px, calc(100% - 48px)); min-height: 490px; margin: 28px auto 0; border-radius: 10px; overflow: hidden; background: var(--vora-primary, #001d36); }
.sdgv-cinematic-hero__content { max-width: 560px; padding: 68px 44px; }
.sdgv-cinematic-hero__eyebrow, .sdgv-premium-section__head > div > span { color: var(--vora-accent, #b8872a); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.sdgv-cinematic-hero__title { color: #fff; font-family: var(--vora-serif, Georgia, serif); font-size: clamp(46px, 6vw, 76px); font-style: italic; font-weight: 400; line-height: .98; letter-spacing: 0; }
.sdgv-cinematic-hero__sub { max-width: 470px; color: rgba(255,255,255,.78); font-size: 16px; line-height: 1.65; }
.sdgv-cinematic-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.sdgv-cinematic-hero__actions a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 22px; border: 1px solid rgba(255,255,255,.65); border-radius: 6px; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.sdgv-cinematic-hero__actions a:first-child { border-color: var(--sdgv-btn-bg, var(--vora-accent, #b8872a)); background: var(--sdgv-btn-bg, var(--vora-accent, #b8872a)); color: var(--sdgv-btn-text, #fff); }
.sdgv-cinematic-hero__actions a:first-child:hover,
.sdgv-cinematic-hero__actions a:first-child:focus-visible { border-color: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-accent, #b8872a))); background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-accent, #b8872a))); color: var(--sdgv-hover-text, var(--sdgv-btn-text, #fff)); }
.sdgv-premium-benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0 auto; border:1px solid var(--vora-border, #e7dfd2); border-top:0; background:var(--vora-surface,#fff); }
.sdgv-premium-benefit { display:grid; grid-template-columns:34px 1fr; gap:2px 12px; padding:18px 22px; border-right:1px solid var(--vora-border,#e7dfd2); }
.sdgv-premium-benefit:last-child { border-right:0; }
.sdgv-premium-icon { display:grid; width:34px; height:34px; grid-row:span 2; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--vora-accent,#b8872a) 10%,#fff); color:var(--vora-accent,#b8872a); }
.sdgv-premium-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.sdgv-premium-benefit strong, .sdgv-premium-trust-strip strong { font-size:12px; letter-spacing:.03em; }
.sdgv-premium-benefit span:last-child, .sdgv-premium-trust-strip small { color:var(--vora-muted,#6f7680); font-size:12px; line-height:1.45; }
.sdgv-premium-section { margin:70px auto 0; }
.sdgv-premium-section__head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.sdgv-premium-section__head h2 { margin:6px 0 0; color:var(--vora-primary,#001d36); font-family:var(--vora-serif,Georgia,serif); font-size:38px; font-style:italic; font-weight:400; line-height:1; }
.sdgv-premium-section__head > a { color:var(--vora-primary,#001d36); font-size:11px; font-weight:800; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; }
.sdgv-premium-category-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.sdgv-premium-category-card { position:relative; display:flex; min-height:200px; flex-direction:column; align-items:center; justify-content:end; overflow:hidden; padding:20px; border-radius:8px; background:var(--vora-primary,#001d36); color:#fff; isolation:isolate; text-align:center; text-decoration:none; }
.sdgv-premium-category-card--image::after { content:""; position:absolute; inset:0; background:rgba(0,29,54,.52); z-index:-1; }
.sdgv-premium-category-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.sdgv-premium-category-card .sdgv-premium-icon { width:42px; height:42px; margin-bottom:12px; background:rgba(255,255,255,.13); color:#fff; }
.sdgv-premium-category-card strong { font-family:var(--vora-serif,Georgia,serif); font-size:22px; font-style:italic; font-weight:400; }
.sdgv-premium-category-card small { margin-top:5px; font-size:11px; line-height:1.4; }
.sdgv-premium-featured__rail { display:grid; grid-auto-columns:minmax(210px,1fr); grid-auto-flow:column; gap:16px; overflow-x:auto; padding-bottom:6px; scrollbar-width:thin; }
.sdgv-premium-featured-card { overflow:hidden; border:1px solid var(--vora-border,#e7dfd2); border-radius:8px; background:#fff; text-decoration:none; }
.sdgv-premium-featured-card__media { display:block; aspect-ratio:1.25; background:#eef0f2; }
.sdgv-premium-featured-card__media img { width:100%; height:100%; object-fit:cover; }
.sdgv-premium-featured-card__body { display:grid; gap:7px; padding:16px; }
.sdgv-premium-featured-card__body small { color:var(--vora-muted,#6f7680); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.sdgv-premium-featured-card__body strong { font-family:var(--vora-serif,Georgia,serif); font-size:20px; font-style:italic; font-weight:400; }
.sdgv-premium-featured-card__body em { color:var(--vora-primary,#001d36); font-family:var(--vora-serif,Georgia,serif); font-size:20px; font-style:italic; }
.sdgv-premium-all { padding-top:4px; }
.sdgv-premium-how__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--vora-border,#e7dfd2); background:#fff; }
.sdgv-premium-how__step { padding:24px; border-right:1px solid var(--vora-border,#e7dfd2); }
.sdgv-premium-how__step:last-child { border-right:0; }.sdgv-premium-how__number { color:var(--vora-accent,#b8872a); font-size:10px; font-weight:800; letter-spacing:.14em; }.sdgv-premium-how__step .sdgv-premium-icon { margin:13px 0; }.sdgv-premium-how__step strong { display:block; font-family:var(--vora-serif,Georgia,serif); font-size:21px; font-style:italic; font-weight:400; }.sdgv-premium-how__step p { color:var(--vora-muted,#6f7680); font-size:12px; line-height:1.5; }
.sdgv-premium-concierge-banner { display:grid; grid-template-columns:1fr .95fr; overflow:hidden; margin:70px auto 0; border-radius:8px; background:var(--vora-primary,#001d36); color:#fff; }.sdgv-premium-concierge-banner__copy { padding:46px; }.sdgv-premium-concierge-banner__copy > span { color:var(--vora-accent,#b8872a); font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }.sdgv-premium-concierge-banner h2 { margin:12px 0; font-family:var(--vora-serif,Georgia,serif); font-size:40px; font-style:italic; font-weight:400; line-height:1; }.sdgv-premium-concierge-banner p { max-width:420px; color:rgba(255,255,255,.78); line-height:1.6; }.sdgv-premium-concierge-banner button { min-height:44px; padding:0 18px; border:1px solid var(--vora-accent,#b8872a); border-radius:5px; background:var(--vora-accent,#b8872a); color:#fff; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.sdgv-premium-concierge-banner img { width:100%; height:100%; min-height:270px; border-radius:0; object-fit:cover; }
.sdgv-premium-trust-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:26px auto 70px; border:1px solid var(--vora-border,#e7dfd2); border-radius:8px; background:#fff; }.sdgv-premium-trust-strip article { display:grid; grid-template-columns:34px 1fr; gap:2px 10px; padding:18px; border-right:1px solid var(--vora-border,#e7dfd2); }.sdgv-premium-trust-strip article:last-child { border-right:0; }

/* ── Checkout, basket, confirmation, page, and redemption ─────────── */
/* All inner page wrappers share one consistent width + padding.         */
.sdgv-wrap--checkout,
.sdgv-wrap--confirmation,
.sdgv-wrap--page { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:52px 0 86px; }
.sdgv-checkout-section,.sdgv-personalise-section,.sdgv-checkout-sidebar,.sdgv-basket-summary,.sdgv-redeem__right,.sdgv-confirmation__card { padding:26px; border:1px solid var(--vora-border,#e7dfd2); border-radius:8px; background:#fff; box-shadow:none; }
.sdgv-checkout-form { display:grid; gap:18px; }
.sdgv-checkout-section { margin:0; }
.sdgv-section-title,.sdgv-checkout-sidebar h3,.sdgv-confirmation__title,.sdgv-redeem__form-title { color:var(--vora-primary,#001d36); font-family:var(--vora-serif,Georgia,serif); font-size:32px; font-style:italic; font-weight:400; }
.sdgv-checkout-sidebar { position:sticky; top:22px; }
.sdgv-voucher-type-grid { grid-template-columns:repeat(2,1fr); }
.sdgv-type-card { border:1px solid var(--vora-border,#e7dfd2); border-radius:8px; background:#fff; }
.sdgv-type-card--active { border:2px solid var(--vora-accent,#b8872a); box-shadow:none; }
.sdgv-input,.sdgv-textarea,.sdgv-select,.sdgv-redeem__code-input { border:1px solid #d9dde2; border-radius:6px; background:#fff; }
.sdgv-btn--pay,.sdgv-btn--balance { border-radius:6px; }
.sdgv-basket-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:28px; flex-direction:unset; }
.sdgv-basket-options { display:contents; }
.sdgv-basket-items,.sdgv-basket-summary { min-width:0; }
.sdgv-basket-summary { height:max-content; position:sticky; top:22px; }
.sdgv-basket-item { padding:20px; border:1px solid var(--vora-border,#e7dfd2); border-radius:8px; background:#fff; }
.sdgv-confirmation { max-width:700px; margin:0 auto; }
.sdgv-redeem__right { width:100%; }
.sdgv-footer { border-top:1px solid var(--vora-border,#e7dfd2); background:#fff; }

/* ── Tablet breakpoint ─────────────────────────────────────────── */
@media(max-width:900px){
  .sdgv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sdgv-premium-category-grid{grid-template-columns:repeat(3,1fr)}
  .sdgv-checkout-layout,.sdgv-basket-layout{grid-template-columns:1fr}
  .sdgv-checkout-sidebar,.sdgv-basket-summary{position:static}
  .sdgv-premium-how__grid,.sdgv-premium-trust-strip{grid-template-columns:repeat(2,1fr)}
  .sdgv-premium-how__step:nth-child(2),.sdgv-premium-trust-strip article:nth-child(2){border-right:0}
  .sdgv-premium-concierge-banner{grid-template-columns:1fr}
  .sdgv-premium-concierge-banner img{max-height:300px}
  .sdgv-site-header__inner{grid-template-columns:auto 1fr auto;width:calc(100% - 36px);min-height:64px}
  .sdgv-site-header__links,.sdgv-site-header__account{display:none}
  .sdgv-site-header__brand{justify-self:center;font-size:32px}
  .sdgv-site-header__actions{grid-column:1;grid-row:1;justify-content:start}
  .sdgv-site-header__mobile-menu{display:block;grid-column:3;grid-row:1}
  .sdgv-site-header__mobile-menu summary{display:grid;width:42px;height:42px;place-items:center;gap:4px;cursor:pointer;list-style:none}
  .sdgv-site-header__mobile-menu summary::-webkit-details-marker{display:none}
  .sdgv-site-header__mobile-menu summary span{display:block;width:20px;height:1px;background:var(--vora-primary,#001d36)}
  .sdgv-site-header__mobile-menu>div{position:absolute;top:63px;right:0;display:grid;min-width:220px;padding:12px;background:#fff;border:1px solid var(--vora-border,#e7dfd2);box-shadow:var(--vora-shadow-card)}
  .sdgv-site-header__mobile-menu a{padding:11px 10px;text-decoration:none;font-family:var(--vora-serif,Georgia,serif)}
}

/* ── Mobile breakpoint (< 620px) ────────────────────────────────── */
@media(max-width:620px){
  .sdgv-premium-section,.sdgv-premium-benefits,.sdgv-premium-concierge-banner,.sdgv-premium-trust-strip,.sdgv-cinematic-hero,.sdgv-wrap--checkout,.sdgv-wrap--confirmation,.sdgv-wrap--page{width:calc(100% - 28px)}
  .sdgv-cinematic-hero{min-height:430px}
  .sdgv-cinematic-hero__content{padding:46px 24px}
  .sdgv-cinematic-hero__title{font-size:48px}
  .sdgv-premium-benefits,.sdgv-premium-how__grid,.sdgv-premium-trust-strip{grid-template-columns:1fr}
  .sdgv-premium-benefit,.sdgv-premium-how__step,.sdgv-premium-trust-strip article{border-right:0;border-bottom:1px solid var(--vora-border,#e7dfd2)}
  .sdgv-premium-category-grid{grid-template-columns:repeat(2,1fr)}
  .sdgv-grid{grid-template-columns:1fr}
  .sdgv-util-bar__inner,.sdgv-util-bar__right{align-items:stretch;flex-direction:column}
  .sdgv-util-bar__sort,.sdgv-util-bar__search{width:100%}
  .sdgv-voucher-type-grid{grid-template-columns:1fr}
  .sdgv-wrap--checkout,.sdgv-wrap--confirmation,.sdgv-wrap--page{padding-top:32px}
  .sdgv-checkout-section,.sdgv-personalise-section,.sdgv-checkout-sidebar,.sdgv-basket-summary,.sdgv-redeem__right{padding:20px !important}
  .sdgv-basket-item{flex-wrap:wrap}
  .sdgv-basket-item__actions{width:100%;flex-direction:row !important;justify-content:space-between}
  .sdgv-premium-concierge-banner__copy{padding:28px}
  .sdgv-premium-concierge-banner h2{font-size:34px}
  /* Header & footer mobile */
  .sdgv-site-header__inner{grid-template-columns:auto 1fr auto;width:calc(100% - 28px);min-height:64px}
  .sdgv-site-header__links,.sdgv-site-header__account{display:none}
  .sdgv-site-header__brand{justify-self:center;font-size:29px}
  .sdgv-site-header__actions{grid-column:1;grid-row:1;justify-content:start}
  .sdgv-site-header__mobile-menu{display:block;grid-column:3;grid-row:1}
  .sdgv-site-header__mobile-menu summary{display:grid;width:42px;height:42px;place-items:center;gap:4px;cursor:pointer;list-style:none}
  .sdgv-site-header__mobile-menu summary::-webkit-details-marker{display:none}
  .sdgv-site-header__mobile-menu summary span{display:block;width:20px;height:1px;background:var(--vora-primary,#001d36)}
  .sdgv-site-header__mobile-menu>div{position:absolute;top:63px;right:0;display:grid;min-width:220px;padding:12px;background:#fff;border:1px solid var(--vora-border,#e7dfd2);box-shadow:var(--vora-shadow-card)}
  .sdgv-site-header__mobile-menu a{padding:11px 10px;text-decoration:none;font-family:var(--vora-serif,Georgia,serif)}
  .sdgv-site-footer{grid-template-columns:1fr;width:calc(100% - 28px);padding:28px 0;text-align:center}
  .sdgv-site-footer nav{flex-wrap:wrap;gap:14px}
  .sdgv-site-footer__brand{font-size:24px}
}

/* ── Full-width public pages with responsive internal gutters ───── */
/* All page-level containers go edge-to-edge; inner padding controls
   the content column so everything aligns with the header/footer.   */
.sdgv-premium-section,.sdgv-premium-benefits,.sdgv-premium-concierge-banner,.sdgv-premium-trust-strip,.sdgv-cinematic-hero,.sdgv-wrap--storefront,.sdgv-wrap--checkout,.sdgv-wrap--confirmation,.sdgv-wrap--page{width:100%;max-width:none}
.sdgv-fullpage .sdgv-wrap > .sdgv-site-header,
.sdgv-fullpage .sdgv-wrap > .sdgv-site-header:first-child {
  display:block;
  margin:0 !important;
  padding:0 !important;
  top:0 !important;
}
.sdgv-fullpage .sdgv-wrap--storefront {
  display:block;
  margin:0 !important;
  padding:0 !important;
}
.sdgv-fullpage .sdgv-wrap--storefront > .sdgv-cinematic-hero:first-child {
  margin-top:0 !important;
}
.sdgv-cinematic-hero{margin:0;border-radius:0}
.sdgv-premium-section,.sdgv-premium-benefits,.sdgv-premium-concierge-banner,.sdgv-premium-trust-strip{padding-left:clamp(22px,5vw,76px);padding-right:clamp(22px,5vw,76px)}
.sdgv-premium-benefits,.sdgv-premium-trust-strip{margin-left:0;margin-right:0}
.sdgv-premium-concierge-banner{margin-left:0;margin-right:0}
.sdgv-wrap--checkout,.sdgv-wrap--confirmation,.sdgv-wrap--page{padding:52px clamp(22px,5vw,76px) 86px}
.sdgv-site-header__inner,.sdgv-site-footer{width:100%;max-width:none;padding-left:clamp(22px,5vw,76px);padding-right:clamp(22px,5vw,76px)}

/* Account CTA: full-width with consistent padding */
.sdgv-account-cta{margin-left:clamp(22px,5vw,76px);margin-right:clamp(22px,5vw,76px);width:calc(100% - 2 * clamp(22px,5vw,76px))}

/* Account page layout consistency */
.sdgv-account-wrap{padding:0 clamp(22px,5vw,76px)}

/* Portal design tokens: all public pages share these values. */
html, body.sdgv-fullpage { background: var(--vora-page-bg, #fbfaf7); }
.sdgv-wrap { background: var(--vora-page-bg, #fbfaf7); color: var(--sdgv-body-text-color, var(--vora-primary, #001d36)); }
.sdgv-site-header { background: var(--sdgv-header-bg, var(--vora-surface, #fff)); }
.sdgv-site-footer { background: var(--sdgv-footer-bg, var(--vora-surface, #fff)); }
.sdgv-site-header__brand {
  color: var(--sdgv-header-text, var(--vora-primary, #001d36));
  font-family: var(--sdgv-header-font, var(--vora-serif, Georgia, serif));
  font-size: var(--sdgv-header-brand-size, 38px);
}
.sdgv-site-header__brand img { max-height: var(--sdgv-header-brand-size, 42px); }
.sdgv-site-header__links a {
  color: var(--sdgv-nav-text, var(--vora-primary, #001d36));
  font-family: var(--sdgv-nav-font, var(--vora-sans, Arial, sans-serif));
  font-size: var(--sdgv-nav-font-size, 14px);
}
.sdgv-site-header__account,
.sdgv-site-header__basket { color: var(--sdgv-nav-text, var(--vora-primary, #001d36)); }
.sdgv-site-header__mobile-menu summary span { background: var(--sdgv-nav-text, var(--vora-primary, #001d36)); }
@media (max-width: 900px) {
  .sdgv-site-header__mobile-menu:not([open]) > div { display: none; }
  .sdgv-site-header__mobile-menu > div { right: auto; inset-inline-end: 0; }
}

/* ══════════════════════════════════════════════════════════════════
   Phase 6 — premium storefront and connected Gift Concierge
   This final layer is intentionally authoritative over compatibility
   rules in sdgv-public.css while retaining merchant design tokens.
   ══════════════════════════════════════════════════════════════════ */
.sdgv-wrap--storefront {
  --sdgv-storefront-gutter: clamp(20px, 5.25vw, 84px);
  overflow: clip;
}
.sdgv-wrap--storefront .sdgv-cinematic-hero {
  position: relative;
  min-height: clamp(540px, 72vh, 760px);
  isolation: isolate;
  background:
    radial-gradient(circle at 78% 30%, color-mix(in srgb, var(--vora-accent, #b8872a) 34%, transparent), transparent 27%),
    linear-gradient(128deg, #071a2d 0%, var(--vora-primary, #001d36) 54%, #0d2941 100%);
}
.sdgv-wrap--storefront .sdgv-cinematic-hero::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(3,18,31,.9) 0%, rgba(3,18,31,.62) 46%, rgba(3,18,31,.12) 100%);
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__media:is(video) {
  object-fit: cover;
  object-position: var(--sdgv-hero-media-x, 50%) var(--sdgv-hero-media-y, 50%);
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: inherit;
  max-width: 760px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(70px, 10vw, 132px) var(--sdgv-storefront-gutter);
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__eyebrow {
  margin: 0 0 18px;
  color: color-mix(in srgb, var(--vora-accent, #b8872a) 68%, #fff) !important;
  letter-spacing: .24em;
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__title {
  max-width: 720px;
  margin: 0;
  font-size: clamp(58px, 7.5vw, 106px);
  line-height: .9;
  text-wrap: balance;
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__sub {
  max-width: 590px;
  margin: 24px 0 0;
  color: rgba(255,255,255,.84) !important;
  font-size: clamp(15px, 1.4vw, 19px) !important;
  line-height: 1.65;
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__actions { margin-top: 34px; }
.sdgv-wrap--storefront .sdgv-cinematic-hero__actions a {
  min-height: 52px;
  padding: 0 26px;
  border-radius: 999px;
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
.sdgv-wrap--storefront .sdgv-cinematic-hero__actions a:hover { transform: translateY(-2px); }
.sdgv-wrap--storefront .sdgv-premium-benefits {
  position: relative;
  z-index: 3;
  margin: -26px var(--sdgv-storefront-gutter) 0;
  width: calc(100% - (2 * var(--sdgv-storefront-gutter)));
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--vora-border, #e7dfd2) 86%, transparent);
  border-radius: 14px;
  box-shadow: 0 18px 55px rgba(0,29,54,.09);
}
.sdgv-wrap--storefront .sdgv-premium-benefit { padding: 22px 26px; }
.sdgv-wrap--storefront .sdgv-premium-section,
.sdgv-wrap--storefront .sdgv-premium-concierge-banner,
.sdgv-wrap--storefront .sdgv-premium-trust-strip {
  padding-right: var(--sdgv-storefront-gutter);
  padding-left: var(--sdgv-storefront-gutter);
}
.sdgv-wrap--storefront .sdgv-premium-section { margin-top: clamp(68px, 8vw, 112px); }
.sdgv-wrap--storefront .sdgv-premium-section__head { margin-bottom: 28px; }
.sdgv-wrap--storefront .sdgv-premium-section__head h2 {
  font-size: clamp(38px, 4.5vw, 60px);
  letter-spacing: -.02em;
}
.sdgv-wrap--storefront .sdgv-premium-section__head > a {
  padding-bottom: 6px;
  border-bottom: 1px solid currentColor;
}
.sdgv-wrap--storefront .sdgv-premium-category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.sdgv-wrap--storefront .sdgv-premium-category-card {
  min-height: clamp(220px, 25vw, 350px);
  align-items: flex-start;
  padding: 26px;
  border-radius: 14px;
  text-align: left;
  transition: transform .35s ease, box-shadow .35s ease;
}
.sdgv-wrap--storefront .sdgv-premium-category-card::after {
  background: linear-gradient(180deg, rgba(0,29,54,.05) 20%, rgba(0,20,38,.88) 100%);
}
.sdgv-wrap--storefront .sdgv-premium-category-card strong,
.sdgv-wrap--storefront .sdgv-premium-category-card small,
.sdgv-wrap--storefront .sdgv-premium-category-card__count { color: #fff !important; }
.sdgv-wrap--storefront .sdgv-premium-category-card--image-failed img { display: none; }
.sdgv-wrap--storefront .sdgv-premium-category-card__count {
  margin-top: 12px;
  color: currentColor;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sdgv-wrap--storefront .sdgv-premium-category-card--empty {
  cursor: default;
  filter: saturate(.55);
  opacity: .78;
}
.sdgv-wrap--storefront .sdgv-premium-category-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(0,29,54,.18);
}
.sdgv-wrap--storefront .sdgv-premium-category-card--empty:hover { transform: none; box-shadow: none; }
.sdgv-wrap--storefront .sdgv-premium-featured__rail {
  grid-auto-columns: minmax(280px, calc((100% - 44px) / 3));
  gap: 22px;
  scroll-snap-type: x mandatory;
}
.sdgv-wrap--storefront .sdgv-premium-featured-card {
  border-radius: 14px;
  scroll-snap-align: start;
  transition: transform .3s ease, box-shadow .3s ease;
}
.sdgv-wrap--storefront .sdgv-premium-featured-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(0,29,54,.1); }
.sdgv-wrap--storefront .sdgv-premium-featured-card__media { aspect-ratio: 1.35; overflow: hidden; }
.sdgv-wrap--storefront .sdgv-premium-featured-card__media img { transition: transform .6s ease; }
.sdgv-wrap--storefront .sdgv-premium-featured-card__placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: color-mix(in srgb, var(--vora-primary, #001d36) 58%, #fff);
}
.sdgv-wrap--storefront .sdgv-premium-featured-card__placeholder svg { width: 46px; height: 46px; }
.sdgv-wrap--storefront .sdgv-premium-featured-card:hover img { transform: scale(1.035); }
.sdgv-wrap--storefront .sdgv-premium-featured-card__body { padding: 22px; }
.sdgv-wrap--storefront .sdgv-premium-featured-card__body strong { font-size: 25px; }
.sdgv-wrap--storefront .sdgv-premium-all { padding-top: 0; }
.sdgv-wrap--storefront .sdgv-util-bar {
  margin-bottom: 30px;
  padding: 18px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 14px;
  background: color-mix(in srgb, var(--vora-surface, #fff) 94%, var(--vora-page-bg, #fbfaf7));
}
.sdgv-wrap--storefront .sdgv-util-bar__inner { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.sdgv-wrap--storefront .sdgv-util-bar__left,
.sdgv-wrap--storefront .sdgv-util-bar__right { display: flex; align-items: end; gap: 12px; }
.sdgv-wrap--storefront .sdgv-util-bar__right { margin-left: auto; }
.sdgv-wrap--storefront .sdgv-util-bar__field { display: grid; gap: 7px; min-width: 150px; }
.sdgv-wrap--storefront .sdgv-util-bar__field > span {
  color: var(--vora-muted, #6f7680);
  font-size: 9px !important;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.sdgv-wrap--storefront .sdgv-util-bar__field--search { min-width: min(250px, 24vw); }
.sdgv-wrap--storefront .sdgv-util-bar select,
.sdgv-wrap--storefront .sdgv-util-bar input {
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 8px;
  background: #fff;
  color: var(--vora-primary, #001d36);
}
.sdgv-wrap--storefront .sdgv-util-bar__result-count { min-width: 86px; padding-bottom: 14px; color: var(--vora-muted, #6f7680); font-size: 11px; text-align: right; }
.sdgv-wrap--storefront .sdgv-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.2vw, 32px) !important; }
.sdgv-wrap--storefront .sdgv-card {
  overflow: hidden;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-radius: 14px !important;
  background: var(--vora-surface, #fff);
  box-shadow: none;
  transition: transform .32s ease, box-shadow .32s ease;
}
.sdgv-wrap--storefront .sdgv-card:hover { transform: translateY(-5px); box-shadow: 0 22px 52px rgba(0,29,54,.11); }
.sdgv-wrap--storefront .sdgv-card__image-link { display: block; overflow: hidden; aspect-ratio: 1.28; }
.sdgv-wrap--storefront .sdgv-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.sdgv-wrap--storefront .sdgv-card:hover .sdgv-card__image { transform: scale(1.03); }
.sdgv-wrap--storefront .sdgv-card__body { padding: 22px; }
.sdgv-wrap--storefront .sdgv-card__title,
.sdgv-wrap--storefront .sdgv-card__title a { font-size: clamp(23px, 2vw, 30px) !important; line-height: 1.08; }
.sdgv-wrap--storefront .sdgv-card__footer { align-items: center; }
.sdgv-wrap--storefront .sdgv-filter-empty {
  margin-top: 20px;
  padding: clamp(38px, 6vw, 76px) 24px;
  border: 1px dashed var(--vora-border, #e7dfd2);
  border-radius: 14px;
  text-align: center;
}
.sdgv-wrap--storefront .sdgv-filter-empty .sdgv-premium-icon { margin: 0 auto 16px; }
.sdgv-wrap--storefront .sdgv-filter-empty h3 { margin: 0; font-family: var(--vora-serif, Georgia, serif); font-size: 30px; font-style: italic; font-weight: 400; }
.sdgv-wrap--storefront .sdgv-filter-empty p { margin: 10px auto 20px; }
.sdgv-wrap--storefront .sdgv-filter-empty button {
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid var(--vora-primary, #001d36);
  border-radius: 999px;
  background: transparent;
  color: var(--vora-primary, #001d36);
}
.sdgv-wrap--storefront .sdgv-premium-how__grid { overflow: hidden; border-radius: 14px; }
.sdgv-wrap--storefront .sdgv-premium-how__step { padding: 30px; }
.sdgv-wrap--storefront .sdgv-premium-concierge-banner {
  position: relative;
  margin-top: clamp(68px, 8vw, 112px);
  border-radius: 0;
  isolation: isolate;
  background: linear-gradient(118deg, #06182a 0%, var(--vora-primary, #001d36) 62%, #173c55 100%);
}
.sdgv-wrap--storefront .sdgv-premium-concierge-banner::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 360px;
  height: 360px;
  right: 8%;
  top: 50%;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  transform: translateY(-50%);
  box-shadow: 0 0 0 56px rgba(255,255,255,.025), 0 0 0 112px rgba(255,255,255,.018);
}
.sdgv-wrap--storefront .sdgv-premium-concierge-banner__copy { padding: clamp(56px, 8vw, 108px) 0; }
.sdgv-wrap--storefront .sdgv-premium-concierge-banner h2 { max-width: 640px; font-size: clamp(44px, 5.5vw, 76px); }
.sdgv-wrap--storefront .sdgv-premium-concierge-banner p { max-width: 560px; font-size: 16px !important; }
.sdgv-wrap--storefront .sdgv-premium-concierge-banner button { min-height: 50px; margin-top: 12px; padding: 0 24px; border-radius: 999px; }
.sdgv-wrap--storefront .sdgv-premium-concierge-banner img { min-height: 420px; }
.sdgv-wrap--storefront .sdgv-premium-trust-strip { margin-top: 0; margin-bottom: clamp(58px, 7vw, 96px); border: 0; border-radius: 0; }

html.sdgv-concierge-is-open { overflow: hidden; }
body > .sdgv-gift-concierge .sdgv-chatbot__backdrop {
  position: fixed;
  z-index: 999997;
  inset: 0;
  background: rgba(2, 12, 22, .64);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity .28s ease;
}
body > .sdgv-gift-concierge[data-open="1"] .sdgv-chatbot__backdrop { opacity: 1; }
body > .sdgv-gift-concierge .sdgv-chatbot__panel {
  position: fixed !important;
  z-index: 999998 !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  display: flex !important;
  width: min(var(--sdgv-concierge-panel-width, 780px), calc(100vw - 48px)) !important;
  height: min(820px, calc(100dvh - 48px)) !important;
  max-height: calc(100dvh - 48px) !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  border-radius: 22px !important;
  box-shadow: 0 38px 110px rgba(0,18,34,.35) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translate(-50%, calc(-50% + 24px)) scale(.985) !important;
  transition: opacity .28s ease, transform .34s cubic-bezier(.2,.8,.2,1), visibility 0s linear .34s !important;
}
body > .sdgv-gift-concierge[data-open="1"] .sdgv-chatbot__panel {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translate(-50%, -50%) scale(1) !important;
  transition-delay: 0s !important;
}
body > .sdgv-gift-concierge .sdgv-chatbot__head {
  flex: 0 0 auto;
  min-height: 72px !important;
  padding: 0 22px !important;
  border-bottom: 1px solid rgba(21,18,13,.1) !important;
  background: color-mix(in srgb, var(--sdgv-chatbot-panel-bg, #fbf9f4) 94%, #fff) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__progress { flex: 0 0 auto; }
body > .sdgv-gift-concierge .sdgv-concierge__body { min-height: 0 !important; flex: 1 1 auto !important; overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; }
body > .sdgv-gift-concierge .sdgv-concierge__option.is-chosen { box-shadow: 0 0 0 3px color-mix(in srgb, var(--sdgv-chatbot-accent, #b8872a) 28%, transparent), 0 18px 44px rgba(0,29,54,.14) !important; }
body > .sdgv-gift-concierge .sdgv-concierge__empty { margin: 22px 0; padding: 28px; border: 1px solid rgba(21,18,13,.1); border-radius: 14px; background: rgba(255,255,255,.58); text-align: center; }
body > .sdgv-gift-concierge .sdgv-concierge__empty h3,
body > .sdgv-gift-concierge .sdgv-concierge__empty h4 { margin: 0 0 9px; font-family: var(--vora-serif, Georgia, serif); font-size: 25px; font-style: italic; font-weight: 400; }
body > .sdgv-gift-concierge .sdgv-concierge__empty p { margin: 0 0 18px; color: var(--vora-muted, #6f7680); }
body > .sdgv-gift-concierge .sdgv-chatbot__toggle { animation-delay: 0s !important; }

@media (max-width: 980px) {
  .sdgv-wrap--storefront .sdgv-premium-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdgv-wrap--storefront .sdgv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdgv-wrap--storefront .sdgv-util-bar__inner { align-items: stretch; flex-direction: column; }
  .sdgv-wrap--storefront .sdgv-util-bar__left {
    display: grid;
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sdgv-wrap--storefront .sdgv-util-bar__right {
    display: grid;
    width: 100%;
    margin-left: 0 !important;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .sdgv-wrap--storefront .sdgv-util-bar__field,
  .sdgv-wrap--storefront .sdgv-util-bar__field--search { width: 100%; min-width: 0; }
  .sdgv-wrap--storefront .sdgv-util-bar select,
  .sdgv-wrap--storefront .sdgv-util-bar input { width: 100%; min-width: 0; }
  .sdgv-wrap--storefront .sdgv-util-bar__result-count { min-width: 0; white-space: normal !important; }
}
@media (max-width: 640px) {
  .sdgv-wrap--storefront { --sdgv-storefront-gutter: 18px; }
  .sdgv-wrap--storefront .sdgv-cinematic-hero { min-height: min(680px, calc(100svh - 64px)); }
  .sdgv-wrap--storefront .sdgv-cinematic-hero__content { justify-content: flex-end; padding-top: 90px; padding-bottom: 62px; }
  .sdgv-wrap--storefront .sdgv-cinematic-hero__title { font-size: clamp(52px, 16vw, 72px); }
  .sdgv-wrap--storefront .sdgv-cinematic-hero__actions { display: grid; }
  .sdgv-wrap--storefront .sdgv-cinematic-hero__actions a { width: 100%; }
  .sdgv-wrap--storefront .sdgv-premium-benefits { grid-template-columns: 1fr; margin-top: 0; border-radius: 0 0 14px 14px; }
  .sdgv-wrap--storefront .sdgv-premium-section { margin-top: 64px; }
  .sdgv-wrap--storefront .sdgv-premium-section__head { align-items: flex-start; flex-direction: column; }
  .sdgv-wrap--storefront .sdgv-premium-category-grid { gap: 10px; }
  .sdgv-wrap--storefront .sdgv-premium-category-card { min-height: 210px; padding: 18px; }
  .sdgv-wrap--storefront .sdgv-premium-category-card strong { font-size: 20px; }
  .sdgv-wrap--storefront .sdgv-premium-featured__rail { grid-auto-columns: minmax(255px, 82vw); }
  .sdgv-wrap--storefront .sdgv-grid { grid-template-columns: 1fr; }
  .sdgv-wrap--storefront .sdgv-util-bar { padding: 14px; }
  .sdgv-wrap--storefront .sdgv-util-bar__left,
  .sdgv-wrap--storefront .sdgv-util-bar__right { display: grid; align-items: stretch; grid-template-columns: 1fr; }
  .sdgv-wrap--storefront .sdgv-util-bar__field { width: 100%; min-width: 0; }
  .sdgv-wrap--storefront .sdgv-util-bar__result-count { padding: 4px 2px 0; text-align: left; }
  .sdgv-wrap--storefront .sdgv-premium-how__grid { grid-template-columns: 1fr; }
  .sdgv-wrap--storefront .sdgv-premium-how__step { border-right: 0; }
  .sdgv-wrap--storefront .sdgv-premium-concierge-banner__copy { padding: 62px 0; }
  .sdgv-wrap--storefront .sdgv-premium-concierge-banner img { min-height: 280px; }
  .sdgv-wrap--storefront .sdgv-premium-trust-strip { grid-template-columns: 1fr; }
  body > .sdgv-gift-concierge .sdgv-chatbot__backdrop { background: var(--sdgv-chatbot-panel-bg, #fbf9f4); -webkit-backdrop-filter: none; backdrop-filter: none; }
  body > .sdgv-gift-concierge .sdgv-chatbot__panel,
  body > .sdgv-gift-concierge[data-open="1"] .sdgv-chatbot__panel {
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
  }
  body > .sdgv-gift-concierge .sdgv-chatbot__head { min-height: calc(64px + env(safe-area-inset-top, 0px)) !important; padding-top: env(safe-area-inset-top, 0px) !important; }
  body > .sdgv-gift-concierge .sdgv-concierge__body { padding-bottom: env(safe-area-inset-bottom, 0px) !important; }
}

/* 2.9.40 — final customer-surface geometry and merchant-colour authority. */
.sdgv-wrap :is(button, .sdgv-btn),
body > .sdgv-gift-concierge :is(button, .sdgv-btn) {
  border-radius: 999px !important;
}

body > .sdgv-gift-concierge.sdgv-concierge--detail-open .sdgv-chatbot__launcher {
  display: none !important;
}

body > .sdgv-gift-concierge .sdgv-mini-basket__close {
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  color: var(--vora-on-surface, #111) !important;
  box-shadow: none !important;
}
html[data-sdgv-theme="dark"] body > .sdgv-gift-concierge .sdgv-mini-basket__close,
html.dark body > .sdgv-gift-concierge .sdgv-mini-basket__close {
  color: #fff !important;
}
body > .sdgv-gift-concierge :is(.sdgv-mini-basket__primary, .sdgv-mini-basket__secondary) {
  border-color: var(--sdgv-chatbot-action-bg, var(--sdgv-btn-bg, #000)) !important;
  background: var(--sdgv-chatbot-action-bg, var(--sdgv-btn-bg, #000)) !important;
  color: var(--sdgv-chatbot-action-text, var(--sdgv-btn-text, #fff)) !important;
  box-shadow: none !important;
}
body > .sdgv-gift-concierge .sdgv-mini-basket__qty button,
body > .sdgv-gift-concierge .sdgv-mini-basket__remove {
  border-color: color-mix(in srgb, var(--vora-on-surface, #111) 20%, transparent) !important;
  background: transparent !important;
  background-image: none !important;
  color: var(--vora-on-surface, #111) !important;
  box-shadow: none !important;
}
body > .sdgv-gift-concierge .sdgv-mini-basket__qty button:hover,
body > .sdgv-gift-concierge .sdgv-mini-basket__remove:hover {
  border-color: var(--sdgv-chatbot-action-bg, var(--sdgv-btn-bg, #000)) !important;
  background: var(--sdgv-chatbot-action-bg, var(--sdgv-btn-bg, #000)) !important;
  color: var(--sdgv-chatbot-action-text, var(--sdgv-btn-text, #fff)) !important;
}
.sdgv-mini-basket__personalised,
.sdgv-basket-item__personalised {
  display:inline-block;
  color:var(--vora-outline,#73777f);
  font-size:12px;
  font-weight:650;
  line-height:1.35;
}
.sdgv-mini-basket__personalised { margin-top:9px; }

.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-wrap--checkout {
  width: 100% !important;
  max-width: none !important;
  padding-right: clamp(22px, 5vw, 76px) !important;
  padding-left: clamp(22px, 5vw, 76px) !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-basket-layout {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px) !important;
  gap: clamp(24px, 4vw, 56px) !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] :is(.sdgv-basket-items, .sdgv-basket-options, .sdgv-basket-item) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-qty__btn {
  border: 1px solid color-mix(in srgb, var(--vora-on-surface, #111) 22%, transparent) !important;
  background: transparent !important;
  background-image: none !important;
  color: var(--vora-on-surface, #111) !important;
  box-shadow: none !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-qty__btn:hover {
  border-color: var(--sdgv-btn-bg, #000) !important;
  background: var(--sdgv-btn-bg, #000) !important;
  color: var(--sdgv-btn-text, #fff) !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-basket-item__remove {
  min-height: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  color: var(--vora-outline, #73777f) !important;
  text-decoration: underline !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-basket-item__remove:hover {
  color: var(--vora-error, #ba1a1a) !important;
  background: none !important;
  border: none !important;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] :is(.sdgv-basket-summary__primary, .sdgv-basket-summary__secondary):hover {
  border-color: var(--sdgv-btn-bg, #000) !important;
  background: var(--sdgv-btn-bg, #000) !important;
  color: var(--sdgv-btn-text, #fff) !important;
}

@media (max-width: 767px) {
  body > .sdgv-gift-concierge.sdgv-concierge--detail-open {
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    left: auto !important;
    width: auto !important;
  }
  body > .sdgv-gift-concierge.sdgv-concierge--detail-open .sdgv-chatbot__launcher {
    display: flex !important;
    width: 52px !important;
    min-width: 52px !important;
    padding: 4px !important;
    border-radius: 999px !important;
  }
  body > .sdgv-gift-concierge.sdgv-concierge--detail-open .sdgv-chatbot__toggle {
    display: none !important;
  }
  body > .sdgv-gift-concierge.sdgv-concierge--detail-open .sdgv-chatbot__basket--launcher {
    display: inline-flex !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: center !important;
  }
  .sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-wrap--checkout {
    width: 100% !important;
    padding-right: 14px !important;
    padding-left: 14px !important;
  }
  .sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-basket-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 20px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sdgv-wrap--storefront *,
  body > .sdgv-gift-concierge * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  body > .sdgv-gift-concierge .sdgv-chatbot__backdrop,
  body > .sdgv-gift-concierge .sdgv-chatbot__panel,
  body > .sdgv-gift-concierge[data-open="1"] .sdgv-chatbot__backdrop,
  body > .sdgv-gift-concierge[data-open="1"] .sdgv-chatbot__panel { transition: none !important; animation: none !important; }
}
/* Phase 6.5 market controls share the header's restrained product language. */
.sdgv-market-controls{display:flex;align-items:center;gap:6px}.sdgv-market-controls select{max-width:150px;min-height:38px;padding:7px 26px 7px 9px;border:1px solid var(--vora-border,#e7dfd2);border-radius:6px;background:var(--vora-surface,#fff);color:var(--vora-primary,#001d36);font:600 11px/1.2 var(--vora-sans,system-ui);letter-spacing:.03em}.sdgv-market-controls select:focus-visible{outline:3px solid color-mix(in srgb,var(--vora-accent,#b8872a) 55%,white);outline-offset:2px}@media(max-width:900px){.sdgv-site-header__actions .sdgv-market-controls{display:none}}

/* Global dark palette. These selectors intentionally outrank merchant light
   defaults while retaining the merchant's accent and button colours. */
html[data-sdgv-theme="light"] { color-scheme: light; }
html[data-sdgv-theme="dark"] {
  color-scheme: dark;
  --vora-page-bg: #0b0b0b;
  --vora-bg: #0b0b0b;
  --vora-surface: #151515;
  --vora-surf-low: #1b1b1b;
  --vora-surf-high: #242424;
  --vora-surf-lowest: #111111;
  --vora-on-surface: #f5f5f5;
  --vora-primary: #ffffff;
  --vora-on-primary: #000000;
  --vora-secondary: #c4c4c4;
  --vora-outline: #a3a3a3;
  --vora-outline-var: #424242;
  --vora-muted: #b8b8b8;
  --vora-border: #333333;
  --sdgv-footer-bg: #0b0b0b;
  --sdgv-header-bg: #0b0b0b;
  --sdgv-header-text: #ffffff;
  --sdgv-nav-text: #eeeeee;
  --sdgv-body-text-color: #f5f5f5;
  --sdgv-bg: #0b0b0b;
  --sdgv-surface: #151515;
  --sdgv-surface-low: #1b1b1b;
  --sdgv-surface-lowest: #111111;
  --sdgv-surface-cont: #242424;
  --sdgv-text: #f5f5f5;
  --sdgv-text-muted: #c4c4c4;
  --sdgv-text-light: #a3a3a3;
  --sdgv-border: rgba(255,255,255,.16);
}
html[data-sdgv-theme="dark"] body,
html[data-sdgv-theme="dark"] body.sdgv-fullpage,
html[data-sdgv-theme="dark"] .sdgv-wrap,
html[data-sdgv-theme="dark"] .sdgv-page,
html[data-sdgv-theme="dark"] main {
  background-color: var(--vora-page-bg, #0b0b0b) !important;
  color: var(--vora-on-surface, #f5f5f5) !important;
}
html[data-sdgv-theme="dark"] .sdgv-site-header,
html[data-sdgv-theme="dark"] .sdgv-site-footer,
html[data-sdgv-theme="dark"] .sdgv-site-header__mobile-menu > div {
  background: var(--sdgv-header-bg, #0b0b0b) !important;
  color: var(--vora-on-surface, #f5f5f5) !important;
  border-color: var(--vora-border, #333) !important;
}
html[data-sdgv-theme="dark"] .sdgv-card,
html[data-sdgv-theme="dark"] .sdgv-basket-item,
html[data-sdgv-theme="dark"] .sdgv-basket-summary,
html[data-sdgv-theme="dark"] .sdgv-checkout-section,
html[data-sdgv-theme="dark"] .sdgv-auth-panel,
html[data-sdgv-theme="dark"] .sdgv-order-row,
html[data-sdgv-theme="dark"] .sdgv-sv655__panel,
html[data-sdgv-theme="dark"] .sdgv-mini-basket {
  background-color: var(--vora-surface, #151515) !important;
  color: var(--vora-on-surface, #f5f5f5) !important;
  border-color: var(--vora-border, #333) !important;
}
html[data-sdgv-theme="dark"] .sdgv-wrap input,
html[data-sdgv-theme="dark"] .sdgv-wrap select,
html[data-sdgv-theme="dark"] .sdgv-wrap textarea {
  background-color: #111 !important;
  color: #f5f5f5 !important;
  border-color: #424242 !important;
}
html[data-sdgv-theme="dark"] .sdgv-wrap input::placeholder,
html[data-sdgv-theme="dark"] .sdgv-wrap textarea::placeholder {
  color: #929292 !important;
}
html[data-sdgv-theme="dark"] .sdgv-site-header__links a,
html[data-sdgv-theme="dark"] .sdgv-site-header__brand,
html[data-sdgv-theme="dark"] .sdgv-site-header__account,
html[data-sdgv-theme="dark"] .sdgv-site-header__basket,
html[data-sdgv-theme="dark"] .sdgv-site-header__mobile-menu a {
  color: var(--sdgv-nav-text, #eee) !important;
}

@media (max-width: 720px) {
  .sdgv-site-header__actions { gap: 8px; }
  .sdgv-site-header__basket { width: 36px; height: 36px; }
}

/* Phase 6.5.7 — authoritative confirmation, voucher, account and legal states. */
.sdgv-confirmation {
  max-width: 760px;
}
.sdgv-confirmation__icon {
  width: 54px;
  height: 54px;
  margin: 0 auto 20px;
  border: 1px solid color-mix(in srgb, var(--vora-accent, #b8872a) 38%, transparent);
  border-radius: 50%;
  background: color-mix(in srgb, var(--vora-accent, #b8872a) 10%, #fff);
}
.sdgv-confirmation__icon::before {
  content: "";
  display: block;
  width: 18px;
  height: 9px;
  margin: 18px auto 0;
  border-bottom: 2px solid var(--vora-accent, #b8872a);
  border-left: 2px solid var(--vora-accent, #b8872a);
  transform: rotate(-45deg);
}
.sdgv-confirmation[data-sdgv-confirmation-state="contained"] .sdgv-confirmation__icon,
.sdgv-confirmation[data-sdgv-confirmation-state="failed"] .sdgv-confirmation__icon {
  border-color: color-mix(in srgb, #a14332 42%, transparent);
  background: color-mix(in srgb, #a14332 9%, #fff);
}
.sdgv-confirmation[data-sdgv-confirmation-state="contained"] .sdgv-confirmation__icon::before,
.sdgv-confirmation[data-sdgv-confirmation-state="failed"] .sdgv-confirmation__icon::before {
  width: 2px;
  height: 18px;
  margin-top: 12px;
  border: 0;
  border-radius: 999px;
  background: #a14332;
  box-shadow: 0 22px 0 -1px #a14332;
  transform: none;
}
.sdgv-confirmation__sub {
  max-width: 650px;
  margin: 0 auto 18px;
  font-size: 15px;
}
.sdgv-confirmation__boundary {
  max-width: 650px;
  margin: 0 auto 24px;
  padding: 14px 16px;
  border-left: 3px solid var(--vora-accent, #b8872a);
  background: color-mix(in srgb, var(--vora-accent, #b8872a) 7%, #fff);
  color: var(--vora-muted, #6f7680);
  font-size: 12px;
  line-height: 1.65;
  text-align: left;
}
.sdgv-confirmation__card {
  overflow-wrap: anywhere;
}
.sdgv-confirmation__totals {
  display: grid;
  gap: 8px;
  margin: 18px 0 4px;
}
.sdgv-confirmation__totals > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  color: var(--vora-muted, #6f7680);
  font-size: 12px;
}
.sdgv-confirmation__totals dt,
.sdgv-confirmation__totals dd {
  margin: 0;
}
.sdgv-confirmation__totals .sdgv-confirmation__total {
  margin-top: 5px;
  padding-top: 12px;
  border-top: 1px solid var(--vora-border, #e7dfd2);
  color: var(--vora-primary, #001d36);
  font-size: 15px;
  font-weight: 700;
}
.sdgv-confirmation__delivery-note {
  margin: 18px 0 0;
  padding: 13px 15px;
  border-radius: 6px;
  background: var(--vora-page-bg, #fbfaf7);
  color: var(--vora-muted, #6f7680);
  font-size: 12px;
  line-height: 1.6;
}
.sdgv-confirmation__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}

.sdgv-voucher-state {
  overflow: hidden;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-left: 4px solid var(--vora-accent, #b8872a);
  border-radius: 8px;
  background: var(--vora-surface, #fff);
}
.sdgv-voucher-state[data-state="expired"],
.sdgv-voucher-state[data-state="redeemed"],
.sdgv-voucher-state[data-state="cancelled"],
.sdgv-voucher-state[data-state="unavailable"] {
  border-left-color: #8a4b42;
}
.sdgv-voucher-state .sdgv-ledger__rows {
  margin: 0;
}
.sdgv-voucher-state [hidden] {
  display: none !important;
}
.sdgv-voucher-state__booking,
.sdgv-redeem__disclaimer {
  color: var(--vora-muted, #6f7680);
  font-size: 12px;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1.65;
  text-transform: none;
}
.sdgv-voucher-state__booking {
  margin: 0;
  padding: 14px 18px;
  border-top: 1px solid var(--vora-border, #e7dfd2);
  background: var(--vora-page-bg, #fbfaf7);
}
.sdgv-redeem__disclaimer {
  margin: 16px 0 0;
}

.sdgv-account-notice {
  max-width: 900px;
  margin: 26px auto 0;
  padding: 14px 18px;
  border: 1px solid var(--vora-border, #e7dfd2);
  border-left: 4px solid #2d6a4f;
  border-radius: 7px;
  background: #fff;
  color: var(--vora-primary, #001d36);
  font-size: 13px;
  line-height: 1.6;
}
.sdgv-account-notice--error {
  border-left-color: #a14332;
}
.sdgv-order-row__meta {
  justify-content: flex-end;
  max-width: min(100%, 520px);
}
.sdgv-order-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 20px 0;
}
.sdgv-order-row__meta {
  justify-content: flex-start;
  max-width: none;
}
.sdgv-order-row__code-status,
.sdgv-order-row__balance,
.sdgv-order-row__delivery,
.sdgv-order-row__resend-status {
  color: var(--vora-muted, #6f7680);
  font-size: 10px;
  line-height: 1.45;
}
.sdgv-order-row__code-status,
.sdgv-order-row__resend-status {
  overflow-wrap: anywhere;
}
.sdgv-order-row__balance,
.sdgv-order-row__delivery {
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--vora-page-bg, #fbfaf7);
  white-space: nowrap;
}
.sdgv-order-row__delivery--failed {
  color: #8a3127;
  background: #fff2ef;
}
.sdgv-order-row__resend {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--vora-primary, #001d36);
  border-radius: 5px;
  background: transparent;
  color: var(--vora-primary, #001d36);
  cursor: pointer;
  font: 700 10px/1 var(--vora-sans, system-ui);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sdgv-order-row__resend:disabled {
  cursor: default;
  opacity: .65;
}

.sdgv-site-footer__content {
  display: grid;
  gap: 10px;
  min-width: 0;
}
body.sdgv-fullpage footer.sdgv-site-footer {
  display: grid !important;
}
.sdgv-site-footer nav {
  flex-wrap: wrap;
}
.sdgv-site-footer__contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 16px;
  margin: 0;
  color: var(--vora-muted, #6f7680);
  font-size: 11px;
  font-style: normal;
  line-height: 1.5;
}
.sdgv-site-footer__contact span,
.sdgv-site-footer__contact a {
  overflow-wrap: anywhere;
}
.sdgv-site-footer a:hover,
.sdgv-site-footer a:focus-visible {
  color: var(--vora-primary, #001d36);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.sdgv-site-footer a:focus-visible,
.sdgv-order-row__resend:focus-visible,
.sdgv-confirmation__actions a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--vora-accent, #b8872a) 55%, white);
  outline-offset: 3px;
}

@media (max-width: 720px) {
  .sdgv-confirmation__title {
    font-size: clamp(34px, 10vw, 44px);
  }
  .sdgv-confirmation__card {
    padding: 20px;
  }
  .sdgv-confirmation__actions {
    display: grid;
  }
  .sdgv-confirmation__actions .sdgv-btn {
    width: 100%;
  }
  .sdgv-account-wrap {
    padding-right: 18px;
    padding-left: 18px;
  }
  .sdgv-order-row__meta {
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
  }
  .sdgv-order-row__code-status,
  .sdgv-order-row__resend-status {
    flex-basis: 100%;
  }
  .sdgv-site-footer {
    grid-template-columns: 1fr;
    padding-top: 32px;
    padding-bottom: 32px;
    text-align: center;
  }
  .sdgv-site-footer__contact {
    align-items: center;
    flex-direction: column;
  }
}
/* Portal-managed customer announcement bar. */
.sdgv-announcement {
  position: relative;
  z-index: 1002;
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 38px;
  padding: 8px 18px;
  overflow: hidden;
  background: var(--sdgv-announcement-bg, #000);
  color: var(--sdgv-announcement-text, #fff);
  font: 600 12px/1.35 var(--sdgv-nav-font, Arial, sans-serif);
  letter-spacing: .04em;
  text-align: center;
}
.sdgv-announcement[hidden] { display: none !important; }
/* The message text lives in its own clipped viewport, separate from the
   dismiss button, which is a normal flex item beside it. That keeps the
   button fixed at the right-hand edge and means scrolling (marquee) text
   is cropped before it ever reaches the button's lane, instead of running
   underneath it. */
.sdgv-announcement__viewport { flex: 1 1 auto; min-width: 0; overflow: hidden; display: flex; justify-content: center; }
.sdgv-button-icons-disabled .sdgv-wrap .vora-labelled-button svg,
.sdgv-button-icons-disabled .sdgv-gift-concierge button.vora-labelled-button svg { display: none !important; }

/* 2.9.39 — one conversational Concierge language across Studio and the
   remaining customer routes. This mirrors the approved Studio assistant
   instead of exposing the retired carousel journey on non-Studio pages. */
html.sdgv-concierge-open { overflow:hidden; overscroll-behavior:none; }
body > .sdgv-gift-concierge.sdgv-concierge--new .sdgv-concierge__body {
  padding: 0 !important;
  overflow: hidden !important;
}
.sdgv-concierge-new { display:flex; min-width:0; min-height:0; width:100%; height:100%; flex-direction:column; overflow-x:hidden; touch-action:pan-y; background:var(--sdgv-chatbot-panel-bg,#fff); color:var(--sdgv-chatbot-header-text,#171717); }
body > .sdgv-gift-concierge.sdgv-concierge--new .sdgv-chatbot__head { min-height:52px!important; background:var(--sdgv-chatbot-header-bg,#faf8f5)!important; }
body > .sdgv-gift-concierge.sdgv-concierge--new .sdgv-chatbot__head-identity { visibility:hidden; }
.sdgv-concierge-new__welcome { position:relative; flex:0 0 auto; overflow:hidden; padding:22px 26px 20px; border-bottom:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 9%,transparent); background:var(--sdgv-chatbot-header-bg,#faf8f5); }
.sdgv-concierge-new__welcome::after { content:""; position:absolute; right:-45px; bottom:-70px; width:180px; height:180px; border-radius:50%; background:var(--sdgv-chatbot-accent,#000); opacity:.12; filter:blur(28px); pointer-events:none; }
.sdgv-concierge-new__welcome > span { position:relative; z-index:1; display:block; margin-bottom:14px; color:var(--sdgv-chatbot-accent,#000); font-size:10px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; }
.sdgv-concierge-new__welcome p { position:relative; z-index:1; margin:0 0 5px!important; color:var(--vora-muted,#777)!important; font-size:10px!important; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.sdgv-concierge-new__welcome h3 { position:relative; z-index:1; max-width:580px; margin:0; font-family:var(--vora-serif,Georgia,serif); font-size:clamp(25px,4vw,34px); font-weight:400; line-height:1.08; }
.sdgv-concierge-new__prompts { display:flex; flex:0 0 auto; gap:9px; padding:12px 18px; overflow-x:auto; border-bottom:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 8%,transparent); scrollbar-width:none; }
.sdgv-concierge-new__prompts::-webkit-scrollbar { display:none; }
.sdgv-concierge-new__prompt { flex:0 0 auto; min-height:34px; padding:7px 13px!important; border:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 15%,transparent)!important; border-radius:11px!important; background:transparent!important; color:inherit!important; font-size:12px!important; font-weight:600; white-space:nowrap; box-shadow:none!important; }
.sdgv-concierge-new__prompt:hover,.sdgv-concierge-new__prompt:focus-visible { border-color:var(--sdgv-chatbot-action-bg,#000)!important; }
.sdgv-concierge-new__log { min-width:0; min-height:160px; flex:1 1 auto; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; padding:20px 22px; }
.sdgv-concierge-new__message { display:flex; gap:10px; margin-bottom:16px; }
.sdgv-concierge-new__message > div { max-width:min(520px,86%); }
.sdgv-concierge-new__message p { margin:0!important; padding:12px 15px; border:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 9%,transparent); border-radius:17px; font-size:14px!important; line-height:1.5; }
.sdgv-concierge-new__message--assistant { align-items:flex-start; }
.sdgv-concierge-new__message--assistant p { border-top-left-radius:3px; background:var(--sdgv-chatbot-bot-bg,#f3f3f3); color:var(--sdgv-chatbot-bot-text,#222)!important; }
.sdgv-concierge-new__message--customer { justify-content:flex-end; }
.sdgv-concierge-new__message--customer p { border:0; border-bottom-right-radius:3px; background:var(--sdgv-chatbot-user-bg,#000); color:var(--sdgv-chatbot-user-text,#fff)!important; }
.sdgv-concierge-new__avatar { display:grid; width:31px; height:31px; flex:0 0 31px; place-items:center; border-radius:50%; background:var(--sdgv-chatbot-accent,#000); color:var(--sdgv-chatbot-action-text,#fff); font-family:var(--vora-serif,Georgia,serif); font-size:15px; }
.sdgv-concierge-new__cards { display:grid; gap:8px; margin-top:9px; }
.sdgv-concierge-new__card { display:grid; min-width:0; grid-template-columns:72px 1fr; overflow:hidden; border:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 10%,transparent); border-radius:12px; background:var(--sdgv-chatbot-panel-bg,#fff); color:inherit; text-decoration:none; }
.sdgv-concierge-new__card img { width:72px; height:76px; object-fit:cover; }
.sdgv-concierge-new__card > span { display:grid; min-width:0; grid-template-columns:1fr auto; gap:4px 12px; align-content:center; padding:9px 11px; }
.sdgv-concierge-new__card strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.sdgv-concierge-new__card small { color:var(--vora-muted,#777); font-size:11px; }
.sdgv-concierge-new__card em { grid-column:2; grid-row:1 / span 2; align-self:center; color:var(--sdgv-chatbot-action-bg,#000); font-size:11px; font-style:normal; font-weight:800; text-transform:uppercase; }
.sdgv-concierge-new__thinking { margin:2px 42px 12px; color:var(--vora-muted,#777); font-size:12px; font-style:italic; }
.sdgv-concierge-new__form { display:flex; flex:0 0 auto; gap:10px; padding:14px 18px max(14px,env(safe-area-inset-bottom,0px)); border-top:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 9%,transparent); background:color-mix(in srgb,var(--sdgv-chatbot-panel-bg,#fff) 94%,var(--sdgv-chatbot-header-bg,#faf8f5)); }
.sdgv-concierge-new__form input { width:100%; min-width:0; height:44px; padding:0 14px; border:1px solid color-mix(in srgb,var(--sdgv-chatbot-header-text,#171717) 15%,transparent); border-radius:12px; background:var(--sdgv-chatbot-panel-bg,#fff); color:inherit; font:inherit; }
.sdgv-concierge-new__form button { min-width:72px; border:0!important; border-radius:12px!important; background:var(--sdgv-chatbot-action-bg,#000)!important; color:var(--sdgv-chatbot-action-text,#fff)!important; font-size:12px!important; font-weight:800; box-shadow:none!important; }
.sdgv-concierge-new__form button:disabled { opacity:.5; }

.sdgv-checkout-ready-summary { display:grid; gap:0; margin:20px 0 24px; overflow:hidden; border:1px solid var(--vora-border,#e7dfd2); border-radius:12px; }
.sdgv-checkout-ready-summary > div { display:flex; justify-content:space-between; gap:20px; padding:12px 15px; border-bottom:1px solid var(--vora-border,#e7dfd2); }
.sdgv-checkout-ready-summary > div:last-child { border-bottom:0; }
.sdgv-checkout-ready-summary dt { color:var(--vora-muted,#6f7680); }
.sdgv-checkout-ready-summary dd { margin:0; font-weight:700; text-align:right; }
.sdgv-checkout-receipt-field { max-width:560px; }

@media (max-width:640px) {
  .sdgv-concierge-new__welcome { padding:calc(18px + env(safe-area-inset-top,0px)) 18px 16px; }
  .sdgv-concierge-new__welcome h3 { font-size:25px; }
  .sdgv-concierge-new__prompts { flex-wrap:wrap; overflow-x:hidden; }
  .sdgv-concierge-new__log { padding:16px 14px; }
  .sdgv-concierge-new__message > div { max-width:88%; }
  .sdgv-concierge-new__form { padding-inline:12px; }
  .sdgv-concierge-new__form button { min-width:62px; }
}
.sdgv-announcement__track { display: inline-flex; align-items: center; justify-content: center; gap: 14px; white-space: nowrap; }
.sdgv-announcement a { color: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.sdgv-announcement button { flex: 0 0 auto; border: 1px solid currentColor; border-radius: 999px; padding: 4px 10px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.sdgv-announcement--fade { animation: sdgv-announcement-fade .5s ease both; }
.sdgv-announcement--slide { animation: sdgv-announcement-slide .5s cubic-bezier(.22,1,.36,1) both; }
.sdgv-announcement--marquee .sdgv-announcement__track { min-width: max-content; animation: sdgv-announcement-marquee 16s linear infinite; }
.sdgv-announcement--marquee:hover .sdgv-announcement__track,
.sdgv-announcement--marquee:focus-within .sdgv-announcement__track { animation-play-state: paused; }
@keyframes sdgv-announcement-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sdgv-announcement-slide { from { opacity: 0; transform: translateY(-100%); } to { opacity: 1; transform: none; } }
@keyframes sdgv-announcement-marquee { from { transform: translateX(45vw); } to { transform: translateX(-45vw); } }
@media (prefers-reduced-motion: reduce) {
  .sdgv-announcement { animation: none !important; }
  .sdgv-announcement__track { animation: none !important; transform: none !important; }
}
@media (max-width: 640px) {
  .sdgv-announcement { gap: 10px; padding-inline: 12px; font-size: 11px; }
  .sdgv-announcement__viewport { justify-content: flex-start; }
  .sdgv-announcement__track { white-space: normal; text-align: left; }
}

/* Stable global header actions and full-width customer workspaces. */
.sdgv-site-header__actions { gap: 12px !important; }

.sdgv-wrap[data-sdgv-basket-surface="full"] .sdgv-basket-summary {
  display: grid !important;
  justify-items: stretch;
}
.sdgv-wrap[data-sdgv-basket-surface="full"] :is(.sdgv-basket-summary__primary, .sdgv-basket-summary__secondary) {
  width: min(100%, 240px) !important;
  min-width: 0 !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 6px auto 0 !important;
  padding: 0 16px !important;
  font-size: 9.5px !important;
  line-height: 1 !important;
  white-space: nowrap;
}

@media (max-width: 767px) {
  body > .sdgv-gift-concierge.sdgv-concierge--detail-open {
    bottom: calc(112px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .sdgv-account-wrap {
    width: 100% !important;
    padding-right: 14px !important;
    padding-left: 14px !important;
  }
}

/* ── Redeem page — single definitive rule, replacing the several
   conflicting versions this page has accumulated across past sessions.
   A vertically centred card whose width scales with the viewport instead
   of a fixed 640px everywhere: 640px was originally chosen to stop the page
   stretching edge-to-edge, but it also meant a wide desktop monitor and a
   phone rendered the identical narrow column, wasting most of a large
   screen. Every property here still carries !important on purpose — this
   is the one rule that is allowed to decide this container's size; add
   further sizing for this page here, not in sdgv-public.css. ── */
.sdgv-redeem-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 640px !important;
  min-width: 0 !important;
  min-height: calc(100vh - 300px) !important;
  margin: 0 auto !important;
  padding: 32px 20px 60px !important;
  box-sizing: border-box !important;
}
.sdgv-redeem-wrap .sdgv-redeem__right {
  width: 100% !important;
  max-width: none !important;
}
@media (min-width: 900px) {
  .sdgv-redeem-wrap {
    max-width: 860px !important;
    padding: 48px 24px 80px !important;
  }
}
@media (min-width: 1280px) {
  .sdgv-redeem-wrap {
    max-width: 1040px !important;
  }
}
@media (max-width: 640px) {
  .sdgv-redeem-wrap {
    padding: 20px 16px 48px !important;
    min-height: auto !important;
  }
}
@media (max-width: 380px) {
  .sdgv-redeem-wrap { padding: 16px 12px 40px !important; }
}

/* ── Account (logged-in) page — same fix as redeem: this had the same
   forced-full-width !important rule left over from an earlier layout,
   stretching the dashboard edge to edge on wide screens. Contained to a
   sensible reading width, matching the other content pages. ── */
.sdgv-account-wrap {
  width: 100% !important;
  max-width: 1180px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}
@media (max-width: 767px) {
  .sdgv-account-wrap {
    max-width: 100% !important;
  }
}

/* ── Sticky footer — on short pages (redeem, a near-empty basket, etc.)
   the footer was appearing right after the content instead of anchored
   to the bottom of the viewport. Standard flex sticky-footer pattern,
   applied once at the wrap level so every page gets it consistently
   instead of each page needing its own fix. ── */
html, body { height: 100%; }
.sdgv-wrap {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
.sdgv-wrap > main {
  flex: 1 0 auto;
}
.sdgv-wrap > .sdgv-site-footer {
  flex-shrink: 0;
}

/* 2.16.2 — one responsive header and complete colour themes on every
   customer route. Basket, checkout and redeem all render the same shared
   header partial; these rules intentionally style that one component rather
   than maintaining route-specific copies. */
@media (max-width: 900px) {
  .sdgv-site-header__inner {
    grid-template-columns: minmax(82px, 1fr) auto minmax(82px, 1fr) !important;
    column-gap: 8px;
  }
  .sdgv-site-header__actions {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start;
    justify-content: flex-start !important;
    gap: 8px !important;
  }
  .sdgv-site-header__brand {
    grid-column: 2;
    grid-row: 1;
    max-width: min(42vw, 180px);
    justify-self: center !important;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .sdgv-site-header__brand img {
    max-width: 100%;
    margin-inline: auto;
  }
  .sdgv-site-header__mobile-menu {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end;
  }
}

@media (max-width: 420px) {
  .sdgv-site-header__inner {
    width: calc(100% - 20px) !important;
    padding-inline: 0 !important;
  }
  .sdgv-site-header__brand {
    max-width: 34vw;
    font-size: clamp(20px, 6.5vw, 27px) !important;
  }
}

html[data-sdgv-theme="light"] .sdgv-wrap {
  color-scheme: light;
}

html[data-sdgv-theme="dark"] .sdgv-wrap {
  color-scheme: dark;
}

html[data-sdgv-theme="dark"] :is(
  .sdgv-checkout-sidebar,
  .sdgv-checkout-summary,
  .sdgv-checkout-preview-notice,
  .sdgv-redeem__right,
  .sdgv-type-card,
  .sdgv-basket-empty,
  .sdgv-voucher-state,
  .sdgv-how-it-works,
  .sdgv-create-account-mini
) {
  background-color: var(--vora-surface, #151515) !important;
  color: var(--vora-on-surface, #f5f5f5) !important;
  border-color: var(--vora-border, #333) !important;
}

/* 2.16.6 — one merchant palette for every customer-facing action. These
   declarations intentionally come last to supersede older bespoke colours. */
.sdgv-premium-concierge-banner button,
body > .sdgv-gift-concierge .sdgv-chatbot__launcher,
body > .sdgv-gift-concierge .sdgv-concierge__continue,
body > .sdgv-gift-concierge .sdgv-concierge__message-form button {
  background: var(--sdgv-btn-bg, var(--vora-accent, #C5A059)) !important;
  background-image: none !important;
  border-color: var(--sdgv-btn-bg, var(--vora-accent, #C5A059)) !important;
  color: var(--sdgv-btn-text, #ffffff) !important;
}
.sdgv-premium-concierge-banner button:hover,
.sdgv-premium-concierge-banner button:focus-visible,
body > .sdgv-gift-concierge .sdgv-chatbot__launcher:hover,
body > .sdgv-gift-concierge .sdgv-concierge__continue:hover,
body > .sdgv-gift-concierge .sdgv-concierge__continue:focus-visible,
body > .sdgv-gift-concierge .sdgv-concierge__message-form button:hover,
body > .sdgv-gift-concierge .sdgv-concierge__message-form button:focus-visible {
  background: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-accent, #C5A059))) !important;
  border-color: var(--sdgv-hover-bg, var(--sdgv-btn-bg, var(--vora-accent, #C5A059))) !important;
  color: var(--sdgv-hover-text, var(--sdgv-btn-text, #ffffff)) !important;
}
body > .sdgv-gift-concierge :is(
  .sdgv-concierge__carousel-label,
  .sdgv-concierge__option-icon
) {
  color: var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option-icon {
  background: color-mix(in srgb, var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) 12%, transparent) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__option.is-selected {
  border-color: var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) !important;
  box-shadow: 0 16px 40px color-mix(in srgb, var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) 24%, transparent), 0 4px 12px rgba(20,16,11,.08) !important;
}
body > .sdgv-gift-concierge :is(
  .sdgv-concierge__arrow:hover,
  .sdgv-concierge__back:hover,
  .sdgv-concierge__view-all:hover
) {
  border-color: var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) !important;
}
body > .sdgv-gift-concierge .sdgv-concierge__welcome-art:not(:has(img)) {
  background: linear-gradient(140deg,
    color-mix(in srgb, var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) 42%, #ffffff),
    var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) 55%,
    color-mix(in srgb, var(--sdgv-chatbot-accent, var(--vora-accent, #C5A059)) 55%, #111111)
  ) !important;
}

html[data-sdgv-theme="dark"] :is(
  .sdgv-page-title,
  .sdgv-page-heading__title,
  .sdgv-section-title,
  .sdgv-checkout-sidebar h3,
  .sdgv-basket-item__title,
  .sdgv-basket-summary h3,
  .sdgv-redeem__form-title,
  .sdgv-redeem__input-label,
  .sdgv-type-card__label,
  .sdgv-how-it-works h4
) {
  color: var(--vora-on-surface, #f5f5f5) !important;
}

html[data-sdgv-theme="dark"] :is(
  .sdgv-back-link,
  .sdgv-page-subtitle,
  .sdgv-checkout-section__intro,
  .sdgv-hint,
  .sdgv-basket-item__variant,
  .sdgv-basket-item__money dt,
  .sdgv-redeem__disclaimer,
  .sdgv-redeem__help,
  .sdgv-how-it-works em
) {
  color: var(--vora-muted, #b8b8b8) !important;
}

html[data-sdgv-theme="dark"] :is(
  .sdgv-checkout-ready-summary,
  .sdgv-basket-summary__row,
  .sdgv-ledger__row,
  .sdgv-redeem__btn-row
) {
  border-color: var(--vora-border, #333) !important;
}

html[data-sdgv-theme="dark"] :is(
  .sdgv-qty__btn,
  .sdgv-btn--secondary,
  .sdgv-header-account-btn
) {
  background: var(--vora-surf-low, #1b1b1b) !important;
  color: var(--vora-on-surface, #f5f5f5) !important;
  border-color: var(--vora-border, #333) !important;
}

/* Optional minimal navigation: preserve the centered brand and usable basket. */
.sdgv-header--no-links .sdgv-site-header__brand{grid-column:2;grid-row:1;justify-self:center}
.sdgv-header--no-links .sdgv-site-header__actions{grid-column:3;grid-row:1;justify-self:end}
@media(max-width:900px){.sdgv-header--no-links .sdgv-site-header__actions{grid-column:1!important;justify-self:start}}

/* The brand and basket are links, not outlined buttons. Some themes apply
   their generic link border/background to them; keep their hit areas and
   leave the account CTA's intentional border untouched. */
.sdgv-site-header a.sdgv-site-header__brand,
.sdgv-site-header a.sdgv-site-header__basket,
.sdgv-site-header .sdgv-site-header__mobile-menu summary {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  text-decoration: none !important;
}
.sdgv-site-header__brand img,
.sdgv-site-header__basket svg,
.sdgv-site-header__mobile-menu summary span {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.sdgv-site-header :is(a.sdgv-site-header__brand, a.sdgv-site-header__basket, .sdgv-site-header__mobile-menu summary):not(:focus-visible) {
  outline: 0 !important;
}
.sdgv-site-header :is(a.sdgv-site-header__brand, a.sdgv-site-header__basket, .sdgv-site-header__mobile-menu summary):focus-visible {
  outline: 2px solid var(--vora-focus-color, var(--vora-accent, #b8872a)) !important;
  outline-offset: 4px !important;
}

/* Optical alignment for the mobile wordmark against the 42px basket/menu controls. */
@media(max-width:900px){
  .sdgv-site-header__brand{display:block;line-height:1.1;transform:translateY(2px)}
  .sdgv-site-header__brand img{max-height:var(--sdgv-header-brand-size,42px)}
}

/* Legal links remain available when optional footer navigation is hidden. */
.sdgv-site-footer nav a{color:var(--sdgv-footer-link-color,var(--vora-muted,#6f7680))!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;text-decoration:none!important;font-size:var(--sdgv-footer-link-size,12px)!important;line-height:1.5!important}
.sdgv-site-footer nav a:hover,.sdgv-site-footer nav a:focus-visible{text-decoration:underline!important;text-underline-offset:3px}
