/* ===== Template 8 – Royal (Premium Gold) (A4 = 794 x 1123 px) ===== */
.tpl-royal {
  --ac: #9a7424; --ac-dark: #14110a; --ac-soft: #caa64d; --ac-tint: #f7f1e1;
  --dens: 1; --ink: #25221b; --gray: #6b6556; --photo: 108px; --bullet: "◆"; --bfs: .55em; --bfsn: .55;
  --ln: var(--ac-soft);
  position: relative;
  width: 794px; min-height: 1123px; flex: none;
  padding: 0 46px 34px;
  background: #fff; color: var(--ink);
  font-family: var(--f-body, Calibri, Carlito, 'Segoe UI', Arial, Helvetica, sans-serif);
  font-size: calc(13px * var(--s-body, 1));
  line-height: calc(1.45 + (var(--dens) - 1) * .4);
  box-shadow: 0 10px 40px rgba(60, 45, 10, .22);
}
.tpl-royal, .tpl-royal * { box-sizing: border-box; }
.tpl-royal.has-foot { padding-bottom: 58px; }

/* Gold gradient bar across the top */
.tpl-royal .ry-bar { height: 10px; margin: 0 -46px 26px; background: linear-gradient(90deg, var(--ac) 0%, var(--ac-soft) 50%, var(--ac) 100%); }

/* Centred header */
.tpl-royal .ry-head { text-align: center; }
.tpl-royal .photo-wrap { width: var(--photo); height: var(--photo); margin: 0 auto 14px; }
.tpl-royal .photo-wrap img { width: 100%; height: 100%; display: block; object-fit: contain; }
.tpl-royal .name {
  margin: 0; font-family: var(--f-head, Georgia, 'Times New Roman', serif); font-weight: 700;
  font-size: calc(34px * var(--s-name, 1)); line-height: 1.12; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ac-dark); text-align: var(--a-name, center); overflow-wrap: anywhere;
}
.tpl-royal.nc-off .name { text-transform: none; letter-spacing: .03em; }
.tpl-royal .title-row { margin-top: 9px; text-align: var(--a-title, center); }
.tpl-royal .title { display: inline-block; font-family: var(--f-head, Georgia, 'Times New Roman', serif); font-weight: 600; font-size: calc(13px * var(--s-title, 1)); line-height: 1.3; letter-spacing: .26em; text-transform: uppercase; color: var(--ac); }
.tpl-royal.ts-plain .title { color: var(--ink); }
.tpl-royal.ts-tag .title { background: var(--ac); color: #fff; padding: .35em .9em; border-radius: 2px; }
.tpl-royal .ry-contact { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; margin-top: 13px; font-size: calc(12.5px * var(--s-body, 1)); }
.tpl-royal .ci { display: inline-flex; align-items: center; gap: 6px; }
.tpl-royal .ico { flex: none; width: 15px; height: 15px; border-radius: 50%; background: var(--ac); display: inline-flex; align-items: center; justify-content: center; }
.tpl-royal .ico svg { width: 8px; height: 8px; fill: #fff; }
.tpl-royal .txt { overflow-wrap: anywhere; }

.tpl-royal .ry-rule { position: relative; height: 3px; margin: 20px 0 22px; background: linear-gradient(90deg, transparent 0%, var(--ac) 18%, var(--ac-soft) 50%, var(--ac) 82%, transparent 100%); }
.tpl-royal .ry-rule::after { content: ''; position: absolute; left: 50%; top: -5px; width: 9px; height: 9px; margin-left: -5px; background: var(--ac); transform: rotate(45deg); box-shadow: 0 0 0 3px #fff; }
.tpl-royal.hr-thick .ry-rule { height: 5px; }
.tpl-royal.hr-none .ry-rule { background: none; height: 0; margin: 10px 0; }
.tpl-royal.hr-none .ry-rule::after { display: none; }

/* Body */
.tpl-royal .ry-body { display: grid; grid-template-columns: 1fr 226px; align-items: start; }
.tpl-royal .ry-main { padding-right: 26px; }
.tpl-royal .ry-aside { padding-left: 24px; border-left: 1px solid var(--ac-soft); }
.tpl-royal.dv-none .ry-aside { border-left: 0; }
.tpl-royal .sec { margin-bottom: calc(18px * var(--dens)); }
.tpl-royal .sec:last-child { margin-bottom: 0; }
.tpl-royal .sec h2 {
  margin: 0 0 calc(9px * var(--dens)); padding-bottom: 4px;
  font-family: var(--f-head, Georgia, 'Times New Roman', serif); font-weight: 700;
  font-size: calc(13.5px * var(--s-h2, 1)); line-height: 1.25; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ac); text-align: var(--a-h2, left);
}
.tpl-royal.hc-off .sec h2 { text-transform: none; letter-spacing: .02em; }
.tpl-royal .summary { margin: 0; text-align: var(--a-body, justify); white-space: pre-line; padding: 10px 14px; background: var(--ac-tint); border-left: 3px solid var(--ac); font-style: italic; }

.tpl-royal .ent { margin-bottom: calc(14px * var(--dens)); }
.tpl-royal .ent:last-child { margin-bottom: 0; }
.tpl-royal .row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.tpl-royal .it { font-weight: 700; font-size: calc(14.5px * var(--s-sub, 1)); line-height: 1.3; color: var(--ac-dark); text-align: var(--a-sub, left); }
.tpl-royal .dt { flex: none; white-space: nowrap; color: var(--ac); font-size: .92em; font-weight: 700; }
.tpl-royal .org { color: var(--gray); font-style: italic; margin: 1px 0 4px; text-align: var(--a-body, left); }

.tpl-royal .pd-i { margin-bottom: calc(8px * var(--dens)); }
.tpl-royal .pd-i:last-child { margin-bottom: 0; }
.tpl-royal .pd-k { display: block; font-size: .76em; letter-spacing: .1em; text-transform: uppercase; color: var(--gray); }
.tpl-royal .pd-v { display: block; font-weight: 700; color: var(--ac-dark); overflow-wrap: anywhere; }

.tpl-royal ul { margin: 3px 0 0; padding-left: 16px; list-style: none; }
.tpl-royal li { --lh: calc(1.45 + (var(--dens) - 1) * .4); position: relative; margin-bottom: calc(2px * var(--dens)); line-height: var(--lh); text-align: var(--a-body, left); overflow-wrap: anywhere; }
.tpl-royal li::before { content: var(--bullet); position: absolute; left: -14px; top: 0; font-size: var(--bfs); line-height: calc(var(--lh) / var(--bfsn, 1)); color: var(--ac); }
