/* 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; }
.sdgv-wrap button:focus-visible, .sdgv-wrap a:focus-visible, .sdgv-wrap input:focus-visible, .sdgv-wrap textarea:focus-visible, .sdgv-wrap select:focus-visible { outline: 2px solid var(--vora-accent, #b8872a); outline-offset: 3px; }

/* ── 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}.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-redeem-wrap { width:min(900px,calc(100% - 48px)); margin:30px auto 80px !important; }
.sdgv-checkout-section,.sdgv-personalise-section,.sdgv-checkout-sidebar,.sdgv-basket-summary,.sdgv-redeem__right,.sdgv-confirmation__card { padding:26px !important; border:1px solid var(--vora-border,#e7dfd2) !important; border-radius:8px !important; background:#fff !important; box-shadow:none !important; }
.sdgv-checkout-form { display:grid; gap:18px; }
.sdgv-checkout-section { margin:0 !important; }
.sdgv-section-title,.sdgv-checkout-sidebar h3,.sdgv-confirmation__title,.sdgv-redeem__form-title { color:var(--vora-primary,#001d36) !important; font-family:var(--vora-serif,Georgia,serif) !important; font-size:32px !important; font-style:italic; font-weight:400 !important; }
.sdgv-checkout-sidebar { position:sticky; top:22px; }
.sdgv-voucher-type-grid,.sdgv-voucher-type-grid[style] { grid-template-columns:repeat(2,1fr) !important; }
.sdgv-type-card { border:1px solid var(--vora-border,#e7dfd2) !important; border-radius:8px !important; background:#fff !important; }
.sdgv-type-card--active { border:2px solid var(--vora-accent,#b8872a) !important; box-shadow:none !important; }
.sdgv-input,.sdgv-textarea,.sdgv-select,.sdgv-redeem__code-input { border:1px solid #d9dde2 !important; border-radius:6px !important; background:#fff !important; }
.sdgv-btn--pay,.sdgv-btn--balance { border-radius:6px !important; }
.sdgv-basket-layout { display:grid !important; grid-template-columns:minmax(0,1fr) 360px; gap:28px; flex-direction:unset !important; }
.sdgv-basket-options { display:contents !important; }
.sdgv-basket-items,.sdgv-basket-summary { min-width:0; }
.sdgv-basket-summary { height:max-content; position:sticky; top:22px; }
.sdgv-basket-item { padding:20px !important; border:1px solid var(--vora-border,#e7dfd2) !important; border-radius:8px; background:#fff; }
.sdgv-confirmation { max-width:700px; margin:0 auto; }
.sdgv-redeem-wrap { width:min(900px,calc(100% - 48px)); margin:30px auto 80px !important; }
.sdgv-redeem__right { width:100% !important; }
.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}
}

/* ── 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,.sdgv-redeem-wrap{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,.sdgv-voucher-type-grid[style]{grid-template-columns:1fr !important}
  .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,.sdgv-redeem-wrap{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-redeem-wrap{padding-left:clamp(22px,15vw,280px);padding-right:clamp(22px,15vw,280px)}
.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)); }
