.regulation-page { --rg-header-space:124px; }
.rg { --rg-ink:#11243c; --rg-muted:#627185; --rg-line:#dce5ed; --rg-blue:#00419f; color:var(--rg-ink); background:#fff; }
.rg *, .rg-certificate-dialog * { box-sizing:border-box; }
.rg-wrap { width:min(1280px,calc(100% - 64px)); margin-inline:auto; }
.rg [id] { scroll-margin-top:116px; }
.rg-kicker { display:block; color:#337884; font-size:12px; font-weight:800; letter-spacing:.16em; }
.rg h1,.rg h2,.rg h3 { letter-spacing:0; }
.rg-hero { position:relative; overflow:hidden; padding:calc(var(--rg-header-space) + 60px) 0 68px; color:#fff; background:radial-gradient(ellipse at 90% 18%,#184b5547,transparent 55%),linear-gradient(125deg,#040c19,#0c2037); }
.rg-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#ffffff06 1px,transparent 1px),linear-gradient(#ffffff06 1px,transparent 1px); background-size:60px 60px; mask-image:linear-gradient(90deg,transparent,#000); pointer-events:none; }
.rg-hero-grid { position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:64px; }
.rg-hero .rg-kicker { color:#81c6c7; }
.rg-hero h1 { margin:22px 0; font-size:clamp(34px,3.8vw,52px); line-height:1.28; font-weight:650; }
.rg-hero h1 em { font-style:normal; color:#a2d2c8; }
.rg-hero-copy > p { max-width:530px; margin:0 0 30px; font-size:16px; line-height:1.9; color:#becbd9; }
.rg-button { display:inline-flex; align-items:center; justify-content:space-between; gap:26px; min-height:46px; padding:12px 20px; border:1px solid var(--rg-blue); border-radius:5px; background:var(--rg-blue); color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
.rg-button:hover { background:#00357f; color:#fff; }
.rg-button-light { border-color:#8babae; color:#fff; background:#ffffff09; }
.rg-button-light:hover { background:#ffffff14; }
.rg-overview { padding:25px 28px 20px; border:1px solid #91b8c13a; border-radius:10px; background:linear-gradient(145deg,#ffffff08,#ffffff02); }
.rg-overview-title { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-bottom:12px; color:#95afb9; font-size:12px; letter-spacing:.07em; }
.rg-overview-row { display:grid; grid-template-columns:36px 1fr auto 15px; gap:16px; align-items:center; padding:25px 0; color:#fff; border-bottom:1px solid #ffffff1c; text-decoration:none; }
.rg-overview-row:hover { color:#a2d2c8; }
.rg-overview-row strong,.rg-overview-row small,.rg-overview-row b { display:block; }
.rg-overview-row strong { font-size:18px; }
.rg-overview-row small { margin-top:4px; color:#a9bdca; font-size:12px; }
.rg-overview-number { text-align:right; }
.rg-overview-number b { margin-top:7px; font-size:17px; font-weight:600; font-variant-numeric:tabular-nums; }
.rg-overview-arrow { color:#89b1b3; }
.rg-overview > p { margin:18px 0 0; color:#a9bdca; font-size:12px; }
.rg-flag { display:inline-block; flex:none; position:relative; width:34px; height:23px; overflow:hidden; border-radius:2px; box-shadow:0 0 0 1px #00000012; }
.rg-flag-mauritius { background:linear-gradient(#e32339 0 25%,#152771 25% 50%,#f2cc27 50% 75%,#149552 75%); }
.rg-flag-south-africa { background:linear-gradient(#df303a 0 44%,#fff 44% 56%,#194196 56%); }
.rg-flag-south-africa::before { content:""; position:absolute; inset:0; background:#008654; clip-path:polygon(0 0,48% 40%,100% 40%,100% 60%,48% 60%,0 100%,0 82%,35% 50%,0 18%); }
.rg-flag-south-africa::after { content:""; position:absolute; inset:4px auto 4px 0; width:12px; background:#111; clip-path:polygon(0 0,100% 50%,0 100%); border-left:2px solid #efbf32; }
.rg-licences { padding-block:66px 70px; }
.rg-section-heading { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:30px; }
.rg-section-heading h2 { margin:12px 0 0; font-size:32px; }
.rg-section-heading p { max-width:380px; margin:0 0 5px; color:var(--rg-muted); font-size:14px; line-height:1.8; }
.rg-licence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.rg-licence-card { overflow:hidden; padding:30px 30px 0; border:1px solid var(--rg-line); border-radius:8px; background:linear-gradient(145deg,#fff,#f7fafb); }
.rg-card-heading { display:flex; align-items:center; gap:16px; }
.rg-card-heading > div > span { color:#67808b; font-size:12px; letter-spacing:.09em; text-transform:uppercase; }
.rg-card-heading h3 { margin:3px 0 0; font-size:22px; }
.rg-card-index { margin-left:auto; align-self:start; font-family:Georgia,serif; font-size:32px; color:#d7e1e7; }
.rg-authority { min-height:48px; margin:20px 0; font-size:14px; color:var(--rg-muted); line-height:1.8; }
.rg-authority span { font-size:13px; }
.rg-licence-number { margin-top:20px; padding:23px 0; border-block:1px solid var(--rg-line); }
.rg-licence-number span { display:block; color:var(--rg-muted); font-size:12px; }
.rg-licence-number strong { display:block; margin-top:8px; color:#123e58; font-size:clamp(26px,2.8vw,36px); letter-spacing:.03em; font-weight:600; }
.rg-record-details { margin:19px 0 24px; }
.rg-record-details > div { display:flex; justify-content:space-between; gap:20px; margin:10px 0; font-size:13px; line-height:1.6; }
.rg-record-details dt { color:var(--rg-muted); }
.rg-record-details dd { margin:0; text-align:right; font-weight:650; }
.rg-query { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:0 -30px; padding:20px 30px; border-top:1px solid var(--rg-line); color:#125a65; background:#eaf3f2; text-decoration:none; font-size:15px; font-weight:750; transition:background .2s; }
.rg-query small { display:block; margin-top:3px; color:#537b7e; font-size:12px; font-weight:400; }
.rg-query > span:last-child { display:grid; place-items:center; width:36px; height:36px; border:1px solid #b9d3d2; border-radius:50%; font-size:20px; }
.rg-query:hover { background:#dcece9; color:#073f48; }
.rg a:focus-visible,.rg button:focus-visible { outline:3px solid #338e9b; outline-offset:4px; }
.rg-compliance { border-top:1px solid var(--rg-line); background:#f8fafc; }
.rg-document-layout { display:grid; grid-template-columns:235px minmax(0,1fr); gap:72px; padding-block:64px; }
.rg-toc { position:sticky; top:120px; align-self:start; }
.rg-toc .rg-kicker { padding-bottom:22px; }
.rg-toc > a { display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--rg-line); color:var(--rg-ink); font-size:14px; }
.rg-toc > a b { color:#397f8a; font-size:12px; }
.rg-toc-note { margin-top:30px; padding:20px; background:#eaf0f4; border-radius:5px; }
.rg-toc-note span,.rg-toc-note strong { display:block; font-size:12px; }
.rg-toc-note span { color:var(--rg-muted); letter-spacing:.06em; }
.rg-toc-note strong { margin:4px 0 16px; font-size:15px; font-weight:600; }
.rg-toc-note strong:last-child { margin-bottom:0; }
.rg-article { padding-bottom:36px; margin-bottom:36px; border-bottom:1px solid var(--rg-line); }
.rg-article h2 { margin:14px 0 18px; font-size:28px; line-height:1.45; }
.rg-article > p { color:var(--rg-muted); font-size:15px; line-height:1.9; }
.rg-clauses { margin-top:26px; }
.rg-clauses > div { display:flex; gap:25px; padding-block:20px; border-top:1px solid var(--rg-line); }
.rg-clauses > div > span { padding-top:2px; font-size:14px; color:#337884; }
.rg-clauses h3 { margin:0 0 8px; font-size:17px; }
.rg-clauses section, .rg-certificates, .rg-certificate-entry { padding:0; }
.rg-clauses p { margin:0; font-size:14px; line-height:1.8; color:var(--rg-muted); }
.rg-aml-list { padding-left:20px; color:var(--rg-muted); font-size:15px; line-height:2.3; }
.rg-closing p { margin-bottom:24px; color:var(--rg-muted); font-size:13px; line-height:1.9; }
.rg-text-link { display:inline-block; margin:16px 0 0 20px; color:#195969; font-size:14px; }
.rg-dialog-open { overflow:hidden; }
.rg-certificate-dialog { max-width:none; width:min(940px,calc(100% - 32px)); max-height:calc(100dvh - 32px); margin:auto; padding:0; overflow:auto; border:0; border-radius:14px; background:#fff; color:#203336; box-shadow:0 30px 100px #0006; }
.rg-certificate-dialog::backdrop { background:#06111dc2; backdrop-filter:blur(5px); }
.rg-certificate-window { padding:16px; }
.rg-certificate-toolbar { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:8px 3px 12px 10px; color:#5a6d70; background:#fff; font-size:13px; }
.rg-certificate-close { display:grid; place-items:center; flex:none; width:34px; height:34px; padding:0; border:1px solid #d9e4e4; border-radius:50%; color:#314d50; background:#f4f8f8; font-size:26px; line-height:1; cursor:pointer; }
.rg-certificate-close:hover { background:#e4eeed; }
.rg-certificate-paper { position:relative; isolation:isolate; overflow:hidden; min-height:535px; padding:24px 44px 40px; background:url("../img/license/regulation04.png") center / 100% 100% no-repeat; }
.rg-certificate-paper::before { content:"GD" / ""; position:absolute; z-index:-1; inset:100px 0 80px; display:grid; place-items:center; color:#54847e0b; font:700 clamp(110px,26vw,230px)/1 Georgia,serif; pointer-events:none; }
.rg-certificate-notice { display:flex; justify-content:space-between; gap:15px; padding:7px 10px; color:#6f754a; background:#f5f3d8a6; font-size:12px; line-height:1.5; }
.rg-certificate-brand { display:flex; justify-content:center; margin-top:24px; }
.rg-certificate-brand img { display:block; width:210px; height:auto; max-width:80%; }
.rg-certificate-paper h2 { margin:18px 0 7px; text-align:center; color:#274c4d; font:400 clamp(24px,4vw,34px)/1.25 Georgia,serif; }
.rg-certificate-subtitle { width:fit-content; margin:0 auto; padding:12px 25px 0; border-top:1px solid #c8d8d5; text-align:center; font-size:14px; color:#607578; }
.rg-certificate-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; margin:28px 6px 0; }
.rg-certificate-field { display:grid; grid-template-columns:125px minmax(0,1fr); align-items:center; gap:10px; min-width:0; padding:15px 0; border-bottom:1px solid #d8e3e0; }
.rg-certificate-field-wide { grid-column:1/-1; }
.rg-certificate-fields dt { color:#6d7c80; font-size:13px; line-height:1.7; }
.rg-certificate-fields dd { display:flex; align-items:center; gap:8px; min-width:0; margin:0; font-size:14px; font-weight:650; color:#1b4f5d; line-height:1.7; overflow-wrap:anywhere; }
.rg-certificate-value { min-width:0; white-space:pre-line; }
.rg-certificate-fields dd.rg-certificate-missing { color:#7d8789; font-weight:400; }
.rg-certificate-fields .rg-flag { width:27px; height:18px; }
.rg-certificate-bottom { display:flex; justify-content:space-between; gap:28px; align-items:end; margin:25px 6px 0; padding-top:0; }
.rg-certificate-bottom p { max-width:470px; margin:0 0 5px; color:#6d8080; font-size:12px; line-height:1.8; }
.rg-certificate-mark { flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; width:104px; height:104px; border:3px double #397c85; border-radius:50%; color:#397c85; transform:rotate(-12deg); opacity:.8; }
.rg-certificate-mark span { font-size:12px; font-weight:700; letter-spacing:0; }
.rg-certificate-mark strong { margin:3px 0; font:700 33px/1 Georgia,serif; }
.rg-certificate-footer { display:flex; justify-content:space-between; gap:20px; padding:14px 12px 0; color:#7e8d8e; font-size:12px; }
@media (max-width:1100px) {
  .regulation-page { --rg-header-space:80px; }
  .rg-hero-grid { gap:30px; }
  .rg-hero h1 { font-size:37px; }
  .rg-overview { padding:20px; }
  .rg-overview-row { gap:10px; grid-template-columns:28px 1fr auto; }
  .rg-overview-arrow { display:none; }
  .rg-overview-row .rg-flag { width:27px; height:18px; }
  .rg-document-layout { gap:40px; grid-template-columns:200px minmax(0,1fr); }
}
@media (max-width:800px) {
  .rg-wrap { width:calc(100% - 40px); }
  .rg-hero { padding-top:calc(var(--rg-header-space) + 42px); }
  .rg-hero-grid { grid-template-columns:1fr; gap:38px; }
  .rg-overview { max-width:580px; width:100%; }
  .rg-section-heading { display:block; }
  .rg-section-heading p { margin-top:14px; }
  .rg-licence-grid { gap:18px; }
  .rg-licence-card { padding:22px 20px 0; }
  .rg-query { margin-inline:-20px; padding-inline:20px; }
  .rg-record-details > div { display:block; }
  .rg-record-details dd { margin-top:4px; text-align:left; }
  .rg-card-heading { gap:12px; }
  .rg-card-heading h3 { font-size:20px; }
  .rg-card-index { display:none; }
  .rg-document-layout { grid-template-columns:1fr; }
  .rg-toc { display:none; }
  .rg-certificate-paper { padding:23px 25px 32px; }
  .rg-certificate-fields { gap:0 20px; }
  .rg-certificate-field { grid-template-columns:1fr; gap:4px; }
}
@media (max-width:600px) {
  .regulation-page { --rg-header-space:72px; }
  .rg-wrap { width:calc(100% - 32px); }
  .rg-hero { padding-bottom:40px; }
  .rg-hero h1 { font-size:32px; }
  .rg-hero-copy > p { font-size:15px; }
  .rg-overview { padding:20px 16px; }
  .rg-licences { padding-block:40px; }
  .rg-section-heading h2 { font-size:28px; }
  .rg-licence-grid { grid-template-columns:1fr; }
  .rg-record-details > div { display:flex; }
  .rg-record-details dd { margin:0; text-align:right; }
  .rg-document-layout { padding-block:40px; }
  .rg-article h2 { font-size:24px; }
  .rg-certificate-dialog { width:calc(100% - 16px); max-height:calc(100dvh - 16px); border-radius:9px; }
  .rg-certificate-window { padding:9px; }
  .rg-certificate-toolbar { padding-left:6px; font-size:12px; }
  .rg-certificate-paper { padding:18px 20px 30px; }
  .rg-certificate-notice { display:block; font-size:12px; }
  .rg-certificate-notice > span { display:block; }
  .rg-certificate-notice > span + span { margin-top:3px; }
  .rg-certificate-brand { margin-top:26px; }
  .rg-certificate-brand img { width:210px; }
  .rg-certificate-fields { grid-template-columns:1fr; gap:0; margin:25px 2px; }
  .rg-certificate-fields > div { padding:12px 0; }
  .rg-certificate-fields dd { font-size:15px; }
  .rg-certificate-bottom { align-items:center; gap:14px; margin-inline:2px; }
  .rg-certificate-mark { width:100px; height:100px; }
  .rg-certificate-mark span { font-size:12px; }
  .rg-certificate-mark strong { font-size:27px; }
  .rg-certificate-footer { display:block; padding:12px 5px 3px; }
  .rg-certificate-footer > span { display:block; }
}
@media (prefers-reduced-motion:reduce) {
  .rg *, .rg *::before, .rg *::after { transition:none; scroll-behavior:auto; }
}
