/* Site-wide background finish. Static CSS only; artwork and controls retain their own surfaces. */
:root {
  --depth-paper:#f8fafc;
  --depth-edge:#e8eff6;
  --depth-recess:#e3ebf3;
  --depth-hero:#edf3f8;
  --depth-blue-pool:#c7daeb59;
  --depth-silver-pool:#ffffffcc;
  --depth-gold-pool:#e3cda126;
  --depth-contour:#8b754c2b;
  --depth-grid-line:#3154730a;
  --depth-fine-line:#3558780b;
  --depth-sheen:#ffffffd9;
  --depth-seam:#7b93ad29;
  --depth-shadow:#142d4812;
  --depth-shadow-near:#142d4808;
}
:root[data-theme=dark] {
  --depth-paper:#0c1b2c;
  --depth-edge:#10253b;
  --depth-recess:#091725;
  --depth-hero:#10253a;
  --depth-blue-pool:#35658a45;
  --depth-silver-pool:#b0cee214;
  --depth-gold-pool:#c7a5671b;
  --depth-contour:#d1b57826;
  --depth-grid-line:#b3cbe00a;
  --depth-fine-line:#c5d9ee09;
  --depth-sheen:#d8e8fa14;
  --depth-seam:#9bb8d524;
  --depth-shadow:#00000036;
  --depth-shadow-near:#0000001f;
}


/* Keep light-mode reading areas above AA even where both edge tints overlap.
   Element specificity intentionally wins over the later layout-clarity palette. */
html:root:not([data-theme=dark]) {
  --depth-paper:#f7f9fc;
  --depth-edge:#eef3f8;
  --depth-recess:#ecf1f7;
  --depth-hero:#ecf1f7;
  --depth-blue-pool:#91b5d10a;
  --depth-gold-pool:#d8bb7908;
  --depth-grid-line:#31547306;
}

/* Broad pools of light give long pages a continuous, dimensional canvas. */
:root body {
  background:
    radial-gradient(ellipse 960px 680px at 0 0,var(--depth-blue-pool),transparent 76%),
    radial-gradient(ellipse 820px 620px at 100% 100%,var(--depth-gold-pool),transparent 76%),
    var(--depth-paper);
  background-attachment:scroll;
}
:root body main {
  background:
    radial-gradient(ellipse 920px 740px at 100% 420px,var(--depth-blue-pool),transparent 78%),
    linear-gradient(180deg,var(--depth-paper),var(--depth-edge) 50%,var(--depth-paper));
}
:root body main::before {
  background-image:
    linear-gradient(90deg,var(--depth-grid-line) 1px,transparent 1px),
    linear-gradient(var(--depth-grid-line) 1px,transparent 1px);
  background-size:112px 112px;
  opacity:1;
  pointer-events:none;
}
:root body main::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse 840px 520px at 105% 360px,transparent 59.6%,var(--depth-contour) 59.8%,transparent 60%,transparent 75.6%,var(--depth-contour) 75.8%,transparent 76%);
  background-size:100% 1280px;
  mask-image:linear-gradient(90deg,transparent 48%,#000);
}

/* Recessed sections have a quiet centre with colour held at the edges. */
:root body main > :is(.section,.game-section,.resource-fast):not(:where(.protection-studio,.project-studio,.investment-studio,.consult-planner,.scroll-scene)) {
  background:
    radial-gradient(ellipse 680px 480px at -12% 0,var(--depth-blue-pool),transparent 75%),
    radial-gradient(ellipse 500px 420px at 108% 100%,var(--depth-gold-pool),transparent 76%),
    linear-gradient(110deg,var(--depth-edge),var(--depth-paper) 29%,var(--depth-paper) 73%,var(--depth-edge));
  box-shadow:inset 0 1px var(--depth-sheen),inset 0 -1px var(--depth-seam);
}
:root body main > :is(.section.soft,.section.section-soft,.travel-story,.case-library,.resource-directory,.property-tour) {
  background:
    radial-gradient(ellipse 780px 500px at 102% 0,var(--depth-blue-pool),transparent 76%),
    radial-gradient(ellipse 560px 400px at -10% 100%,var(--depth-gold-pool),transparent 75%),
    linear-gradient(125deg,var(--depth-recess),var(--depth-paper) 47%,var(--depth-edge));
  box-shadow:inset 0 12px 30px var(--depth-shadow-near),inset 0 1px var(--depth-seam),inset 0 -1px var(--depth-sheen);
}


/* The working areas keep their own visual identity, with a clear reading centre.
   These scoped rules also win over older nth-of-type section decoration. */
:root body main > .protection-studio {
  background:
    radial-gradient(ellipse 760px 480px at -12% 0,var(--studio-tint),transparent 75%),
    radial-gradient(ellipse 660px 480px at 110% 100%,var(--depth-blue-pool),transparent 78%),
    var(--surface);
  box-shadow:inset 0 1px var(--depth-seam),inset 0 -1px var(--depth-seam);
}
:root body main > :is(.project-studio,.investment-studio) {
  background:
    repeating-linear-gradient(90deg,var(--depth-grid-line) 0 1px,transparent 1px 112px),
    radial-gradient(ellipse 720px 480px at 108% 0,var(--depth-blue-pool),transparent 76%),
    linear-gradient(145deg,var(--depth-edge),var(--depth-paper) 46%,var(--depth-recess));
  box-shadow:inset 0 1px var(--depth-sheen),inset 0 -1px var(--depth-seam);
}
:root body main > .consult-planner {
  background:
    radial-gradient(ellipse 760px 520px at -12% 0,var(--depth-blue-pool),transparent 76%),
    radial-gradient(ellipse 660px 460px at 108% 100%,var(--depth-gold-pool),transparent 78%),
    var(--depth-paper);
  box-shadow:inset 0 1px var(--depth-seam),inset 0 -1px var(--depth-seam);
}
:root body main > .scroll-scene {
  background:
    radial-gradient(ellipse 720px 520px at 108% 12%,var(--depth-blue-pool),transparent 78%),
    var(--soft);
  box-shadow:inset 0 1px var(--depth-seam),inset 0 -1px var(--depth-seam);
}
:root body main > .game-promotion {
  background:
    radial-gradient(ellipse 780px 520px at 108% 0,var(--depth-blue-pool),transparent 78%),
    radial-gradient(ellipse 620px 480px at -12% 100%,var(--depth-gold-pool),transparent 78%),
    var(--gp-bg);
}

/* The opening panels carry a larger architectural contour and metallic light. */
:root body main > :is(.finance-home,.page-hero:not(.service-cover),.personal-hero,.campaign-hero,.gcc-hero) {
  background:
    radial-gradient(ellipse 740px 520px at 108% -10%,transparent 54.6%,var(--depth-contour) 54.8%,transparent 55%,transparent 69.6%,var(--depth-contour) 69.8%,transparent 70%,transparent 84.6%,var(--depth-contour) 84.8%,transparent 85%),
    radial-gradient(ellipse 820px 580px at 100% 0,var(--depth-gold-pool),transparent 74%),
    radial-gradient(ellipse 960px 700px at -14% 14%,var(--depth-blue-pool),transparent 74%),
    radial-gradient(ellipse 700px 380px at 62% 0,var(--depth-silver-pool),transparent 76%),
    linear-gradient(125deg,var(--depth-hero),var(--depth-paper) 52%,var(--depth-edge));
  box-shadow:inset 0 1px var(--depth-sheen),inset 0 -1px var(--depth-seam),0 14px 32px var(--depth-shadow-near);
}

/* Retain the commissioned cover images, adding light above the existing image. */
:root body main > :is(.page-hero.service-cover,.international-hero.passport-hero) {
  background-image:
    radial-gradient(ellipse 660px 460px at 94% 2%,#d5b87719,transparent 74%),
    radial-gradient(ellipse 820px 540px at 45% 110%,#86acc522,transparent 74%),
    var(--cover-image,none);
  box-shadow:inset 0 1px #e1c79352,inset 0 -34px 64px #030b174d,0 14px 32px var(--depth-shadow-near);
}
:root[data-theme=dark] body .international-hero.passport-hero {
  --cover-image:url('../images/international-passport-cover.webp');
}
:root:not([data-theme=dark]) body main > :is(.page-hero.service-cover,.international-hero) {
  background-image:
    radial-gradient(ellipse 660px 460px at 96% 0,#ccb67e26,transparent 74%),
    linear-gradient(105deg,#f7fafdfc 5%,#f3f7faf2 42%,#e7eff6db 72%,#e7edf4bd),
    var(--cover-image,none);
  box-shadow:inset 0 1px #fff,inset 0 -1px #b7c7d6,0 14px 32px var(--depth-shadow-near);
}

/* Country introductions already have a navy palette in dark mode. */
:root[data-theme=dark] body main > .international-hero:not(.passport-hero) {
  background:
    radial-gradient(ellipse 680px 460px at 104% -8%,transparent 59.6%,#d5b87726 59.8%,transparent 60%,transparent 79.6%,#d5b87726 79.8%,transparent 80%),
    radial-gradient(ellipse 740px 500px at 95% 2%,#d5b87717,transparent 76%),
    radial-gradient(ellipse 900px 600px at 0 100%,#315a7340,transparent 74%),
    linear-gradient(130deg,#071629,#133049);
  box-shadow:inset 0 1px #d7bd8640,inset 0 -28px 58px #020a1633;
}

/* Raised reading surfaces sit above the backdrop; no content positioning changes. */
:root body main :is(.home-jack-card,.home-stage,.form-panel,.calculator,.service-disclosure,.seo-answer,.at-glance,.client-outcome,.review,.resource-card) {
  box-shadow:0 2px 5px var(--depth-shadow-near),0 18px 48px var(--depth-shadow),inset 0 1px var(--depth-sheen);
}
:root body main .service-disclosure[open] {
  box-shadow:0 3px 8px var(--depth-shadow-near),0 24px 56px var(--depth-shadow),inset 0 1px var(--depth-sheen);
}
:root body .footer {
  background:
    radial-gradient(ellipse 720px 480px at 102% -15%,transparent 59.6%,#cdb57d24 59.8%,transparent 60%,transparent 79.6%,#cdb57d24 79.8%,transparent 80%),
    radial-gradient(ellipse 820px 500px at -10% 0,#31587266,transparent 75%),
    radial-gradient(ellipse 620px 460px at 100% 100%,#b3965521,transparent 75%),
    linear-gradient(125deg,#071629,#0e2338 54%,#09192a);
  box-shadow:inset 0 1px #c9b58247,inset 0 16px 40px #0209113b;
}

@media(max-width:760px) {
  /* Fewer decorative layers and smaller shadows on narrow screens. */
  :root body main::before {background-size:88px 88px;opacity:.5}
  :root body main::after {display:none}
  :root body main > :is(.project-studio,.investment-studio) {
    background:radial-gradient(ellipse 380px 320px at 115% 0,var(--depth-blue-pool),transparent 78%),linear-gradient(130deg,var(--depth-edge),var(--depth-paper) 65%);
  }
  :root body main > :is(.finance-home,.page-hero:not(.service-cover),.personal-hero,.campaign-hero,.gcc-hero) {
    background:
      radial-gradient(ellipse 420px 320px at 120% 0,transparent 64.6%,var(--depth-contour) 64.8%,transparent 65%,transparent 84.6%,var(--depth-contour) 84.8%,transparent 85%),
      radial-gradient(ellipse 440px 420px at 105% 6%,var(--depth-gold-pool),transparent 76%),
      linear-gradient(135deg,var(--depth-hero),var(--depth-paper) 52%,var(--depth-edge));
  }
  :root body main > :is(.section,.game-section,.resource-fast):not(:where(.protection-studio,.project-studio,.investment-studio,.consult-planner,.scroll-scene)) {
    background:radial-gradient(ellipse 380px 320px at 115% 0,var(--depth-blue-pool),transparent 78%),linear-gradient(120deg,var(--depth-edge),var(--depth-paper) 36%,var(--depth-paper));
  }
  :root body main > :is(.section.soft,.section.section-soft,.travel-story,.case-library,.resource-directory,.property-tour) {
    background:radial-gradient(ellipse 380px 320px at -20% 100%,var(--depth-gold-pool),transparent 76%),linear-gradient(130deg,var(--depth-recess),var(--depth-paper) 65%);
  }
  :root body main :is(.home-jack-card,.home-stage,.form-panel,.calculator,.service-disclosure,.seo-answer,.at-glance,.client-outcome,.review,.resource-card) {
    box-shadow:0 2px 4px var(--depth-shadow-near),0 10px 25px var(--depth-shadow),inset 0 1px var(--depth-sheen);
  }
}
@media print {
  :root body,:root body main,:root body main > :is(.section,.game-section,.resource-fast,.game-promotion,.finance-home,.page-hero,.personal-hero,.protection-studio,.project-studio,.investment-studio,.consult-planner,.scroll-scene),:root body .footer {
    background:none!important;box-shadow:none!important;
  }
  /* Paper needs a complete colour pair, regardless of the active screen theme. */
  :root body main > :is(.international-hero,.gcc-hero) {
    background:#fff!important;color:#112340!important;box-shadow:none!important;
  }
  :root body main > :is(.international-hero,.gcc-hero) :is(h1,h1 em,.kicker,.lede,.breadcrumbs,.breadcrumbs a,.breadcrumbs [aria-current=page],.international-note,.us-route-stamp,.us-route-stamp *) {
    color:#112340!important;
  }
  :root body main > :is(.international-hero,.gcc-hero) :is(.international-art,.art-note,.promotion-notice,.promotion-notice a) {
    background:#fff!important;color:#112340!important;box-shadow:none!important;
  }
  :root body main > :is(.international-hero,.gcc-hero)::before,
  :root body main > :is(.international-hero,.gcc-hero)::after {display:none!important}
  :root body main::before,:root body main::after {display:none!important}
  :root body main :is(.home-jack-card,.home-stage,.form-panel,.calculator,.service-disclosure,.seo-answer,.at-glance,.client-outcome,.review,.resource-card) {box-shadow:none!important}
}
