/* Account pages: one continuous parchment scene; artwork fades into the paper. */
body.account-page .account-card label.two-factor-trust-option{display:flex!important;align-items:flex-start;gap:10px;margin:17px 0 10px!important;padding:13px 14px;border:1px solid #d9d5c7;border-radius:8px;background:#f8f7f0;cursor:pointer;line-height:1.4}
body.account-page .account-card .two-factor-trust-option input[type=checkbox]{flex:none;width:17px;height:17px;margin:1px 0 0;accent-color:#254635}
body.account-page .account-card .two-factor-trust-option span{display:block;font-size:.9rem;font-weight:600}
body.account-page .account-card .two-factor-trust-option small{display:block;margin-top:4px;color:#5e6c60;font-size:.76rem;font-weight:400}
html:has(body.account-page) { min-height:100%; background:#f6efe3; }
html body.account-page { display:block!important; width:100%!important; max-width:none!important; min-height:100vh!important; height:auto!important; margin:0!important; padding:0!important; background:#f6efe3!important; color:#203a30; font-family:Georgia,"Times New Roman",serif!important; }
body.account-page *,body.account-page *::before,body.account-page *::after { box-sizing:border-box; font-family:Georgia,"Times New Roman",serif; }
body.account-page .account-scene { position:relative; isolation:isolate; display:flex; flex-direction:column; align-items:center; width:100%!important; max-width:none!important; min-height:100vh; margin:0!important; padding:clamp(22px,4vh,42px) 20px 22px; overflow:hidden; background:radial-gradient(ellipse at 50% 20%,#fffaf1 0%,#f8f1e6 56%,#eee4d4 100%); }
/* Transparent edge masks prevent the original rectangular illustration panels from showing. */
body.account-page .account-scene::before,body.account-page .account-scene::after { content:""; position:absolute; z-index:-1; pointer-events:none; background-repeat:no-repeat; opacity:.67; }
body.account-page .account-scene::before { left:0; bottom:0; width:min(37vw,520px); height:min(96vh,875px); background-image:url("../images/account-engraving-left.webp"); background-size:100% 100%; background-position:left bottom; -webkit-mask-image:linear-gradient(to right,#000 0%,#000 35%,transparent 100%),linear-gradient(to top,#000 0%,#000 76%,transparent 100%); mask-image:linear-gradient(to right,#000 0%,#000 35%,transparent 100%),linear-gradient(to top,#000 0%,#000 76%,transparent 100%); -webkit-mask-composite:source-in; mask-composite:intersect; }
body.account-page .account-scene::after { right:0; bottom:0; width:min(38vw,540px); height:min(78vh,690px); background-image:url("../images/account-engraving-right.webp"); background-size:100% 100%; background-position:right bottom; -webkit-mask-image:linear-gradient(to left,#000 0%,#000 38%,transparent 100%),linear-gradient(to top,#000 0%,#000 73%,transparent 100%); mask-image:linear-gradient(to left,#000 0%,#000 38%,transparent 100%),linear-gradient(to top,#000 0%,#000 73%,transparent 100%); -webkit-mask-composite:source-in; mask-composite:intersect; }
body.account-page .account-masthead { position:relative; z-index:1; width:min(100%,650px); max-width:650px; margin:0 auto 22px; background:transparent!important; border:0!important; box-shadow:none!important; }
body.account-page main.account-card { position:relative; z-index:1; display:block!important; flex:0 0 auto!important; align-self:center; width:min(100%,490px)!important; max-width:490px!important; min-width:0!important; min-height:0!important; height:auto!important; margin:0 auto!important; padding:29px 36px 23px!important;   border-radius:0!important;  clip-path:none!important; mask:none!important; }
body.account-page main.account-card::before,body.account-page main.account-card::after { content:""; position:absolute; left:0; right:0; height:11px; pointer-events:none; background:radial-gradient(circle at 9px 0,#f6eee0 6px,transparent 6.5px) repeat-x; background-size:18px 11px; }
body.account-page main.account-card::before { top:0; }
body.account-page main.account-card::after { bottom:0; transform:rotate(180deg); }
body.account-page .account-card h1 { margin:0 0 17px!important; color:#203a30; font-size:clamp(1.65rem,2.5vw,2.15rem)!important; line-height:1.15; font-weight:600; text-align:center; }
body.account-page .account-card form { margin:0; }
body.account-page .account-card label { display:block; margin:10px 0 4px!important; font-size:.86rem!important; font-weight:500; }
body.account-page .account-card input:not([type=hidden]):not([type=checkbox]):not([type=radio]),body.account-page .account-card select,body.account-page .account-card textarea { display:block; width:100%; min-height:40px!important; padding:8px 11px!important; border:1px solid #cfc6b6!important; border-radius:5px!important; background:#fffefa!important; color:#203a30; font-size:.9rem!important; }
body.account-page .account-card input:focus-visible,body.account-page .account-card button:focus-visible,body.account-page .account-card a:focus-visible { outline:3px solid #8da597; outline-offset:2px; }
body.account-page .account-card button[type=submit] { display:block; width:100%; min-height:42px; margin:15px 0 0!important; padding:8px 12px!important; background:#254635!important; border:0!important; border-radius:5px!important; color:white!important; font-size:.98rem!important; cursor:pointer; }
body.account-page .account-card button[type=submit]:hover { background:#35634a!important; }
body.account-page .account-card button:disabled { opacity:.55; cursor:not-allowed; }
body.account-page .account-card p { margin:12px 0 0; font-size:.86rem!important; line-height:1.45; text-align:center; }
body.account-page .account-card small { display:block; margin-top:4px; font-size:.77rem!important; line-height:1.4; }
body.account-page .account-card .error,body.account-page .account-card .notice { margin:0 0 10px; padding:9px; font-size:.83rem; text-align:left; }
body.account-page .account-card .captcha-widget { margin-top:12px; max-width:100%; overflow:visible; }
body.account-page .account-card .account-back { margin-top:15px; padding-top:12px; border-top:1px solid #d9cfbd; }
body.account-page .account-card a { color:#254635; }
/* Explicitly reset generic site footer rules: no full-width bar or clipped text. */
body.account-page .account-scene > footer.account-footer { position:relative!important; z-index:1; display:block!important; flex:0 0 auto!important; align-self:center!important; width:auto!important; max-width:100%!important; min-height:0!important; height:auto!important; margin:clamp(28px,7vh,72px) auto 0!important; padding:0 10px!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; color:#625b4c!important; font-size:.73rem!important; font-style:italic; line-height:1.5!important; letter-spacing:.06em; text-align:center!important; white-space:normal!important; overflow:visible!important; }
@media(max-width:720px) { body.account-page .account-scene { padding:22px 15px 18px; } body.account-page .account-scene::before,body.account-page .account-scene::after { opacity:.22; width:65vw; } body.account-page .account-masthead { margin-bottom:18px; } body.account-page .account-brand img { width:54px; height:54px; } body.account-page .account-brand strong { font-size:1.42rem; } body.account-page .account-brand small { font-size:.53rem; letter-spacing:.1em; } body.account-page main.account-card { padding:25px 24px 20px!important; } }
@media(max-width:390px) { body.account-page .account-brand { gap:9px; } body.account-page .account-brand strong { font-size:1.18rem; } body.account-page main.account-card { padding:23px 17px 18px!important; } }

/* Perforations on all four edges: side notches complement the top/bottom scallops.
   Keep the artwork on the card itself so no extra markup covers form controls. */
body.account-page main.account-card {
  background-color:#fffdf7!important;

  background-position:left top,right top!important;
  background-size:11px 18px,11px 18px!important;
  background-repeat:repeat-y,repeat-y!important;
}

/* True cut-out perforations: four intersecting alpha masks remove the paper
   itself, rather than painting background-coloured dots over the card. */
body.account-page main.account-card {
  background:#fffdf7!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 12px 16px rgb(64 58 42 / 22%));
  -webkit-mask-image:
    radial-gradient(circle at 9px 0, transparent 0 6px, #000 6.5px),
    radial-gradient(circle at 9px 100%, transparent 0 6px, #000 6.5px),
    radial-gradient(circle at 0 9px, transparent 0 6px, #000 6.5px),
    radial-gradient(circle at 100% 9px, transparent 0 6px, #000 6.5px);
  mask-image:
    radial-gradient(circle at 9px 0, transparent 0 6px, #000 6.5px),
    radial-gradient(circle at 9px 100%, transparent 0 6px, #000 6.5px),
    radial-gradient(circle at 0 9px, transparent 0 6px, #000 6.5px),
    radial-gradient(circle at 100% 9px, transparent 0 6px, #000 6.5px);
  -webkit-mask-size:18px 100%,18px 100%,100% 18px,100% 18px;
  mask-size:18px 100%,18px 100%,100% 18px,100% 18px;
  -webkit-mask-repeat:repeat-x,repeat-x,repeat-y,repeat-y;
  mask-repeat:repeat-x,repeat-x,repeat-y,repeat-y;
  -webkit-mask-composite:source-in,source-in,source-in;
  mask-composite:intersect;
}
body.account-page main.account-card::before,
body.account-page main.account-card::after { content:none!important; display:none!important; }

/* Authentication masthead uses the exact public-site brand typography and tagline. */
body.account-page .account-masthead .perforated-brand {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    color:#182331;
    text-decoration:none;
}
body.account-page .account-masthead .perforated-logo {
    width:clamp(58px,5.5vw,72px);
    height:auto;
    aspect-ratio:1226 / 1283;
    object-fit:contain;
}
body.account-page .account-masthead .perforated-brand-copy { display:flex; flex-direction:column; min-width:0; }
body.account-page .account-masthead .perforated-brand-copy strong {
    font:500 clamp(24px,3.2vw,46px)/1.08 Georgia,"Times New Roman",serif!important;
    letter-spacing:-.025em;
}
body.account-page .account-masthead .perforated-brand-copy small {
    margin-top:8px;
    font:10px/1.4 Arial,sans-serif!important;
    letter-spacing:.32em;
    color:#8b5e55;
}
@media(max-width:700px){body.account-page .account-masthead .perforated-brand-copy small{letter-spacing:.15em;}}

/* Centre the authentication brand as one unit above the account card. */
body.account-page .account-masthead {
    display:flex;
    justify-content:center;
    align-items:center;
}
body.account-page .account-masthead .perforated-brand {
    width:max-content;
    max-width:100%;
    margin-inline:auto;
}


/* Collection transfer invitation: stronger hierarchy and centred actions. */
body.account-page .account-card:has(.transfer-invitation) {
  width:min(100%,590px)!important;
  max-width:590px!important;
  padding:38px 46px 32px!important;
}
body.account-page .account-card:has(.transfer-invitation) h1 {
  margin-bottom:28px!important;
  font-size:clamp(2rem,4vw,2.7rem)!important;
}
body.account-page .transfer-invitation { text-align:center; }
body.account-page .account-card .transfer-request-copy {
  margin:0 auto!important;
  max-width:590px;
  font-size:1.08rem!important;
  line-height:1.55;
}
body.account-page .account-card .transfer-explanation {
  margin:22px auto 0!important;
  max-width:570px;
  color:#40564d;
  font-size:1rem!important;
  line-height:1.65;
}
body.account-page .transfer-expiry {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  width:min(100%,390px);
  margin:24px auto 0;
  padding:14px 20px;
  border:1px solid #d9cfbd;
  border-radius:8px;
  background:#f8f3e8;
  color:#42574e;
}
body.account-page .transfer-expiry-label { font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
body.account-page .transfer-expiry strong { color:#203a30; font-size:1.2rem; line-height:1.35; }
body.account-page .transfer-expiry span:last-child { font-size:.83rem; }
body.account-page .account-card form.transfer-invitation-actions {
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin:26px auto 0;
}
body.account-page .account-card form.transfer-invitation-actions button[type=submit] {
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:auto!important;
  min-width:180px;
  min-height:48px;
  margin:0!important;
  padding:10px 20px!important;
  border-radius:7px!important;
  font-size:1rem!important;
  font-weight:600;
}
body.account-page .account-card form.transfer-invitation-actions .transfer-decline {
  min-width:130px;
  background:#fffdf7!important;
  color:#254635!important;
  border:1px solid #254635!important;
}
body.account-page .account-card form.transfer-invitation-actions .transfer-decline:hover { background:#f0eadc!important; }
body.account-page .account-card:has(.transfer-invitation) .account-back { margin-top:28px; }
@media(max-width:600px) {
  body.account-page .account-card:has(.transfer-invitation) { padding:30px 24px 24px!important; }
  body.account-page .account-card form.transfer-invitation-actions { flex-direction:column; }
  body.account-page .account-card form.transfer-invitation-actions button[type=submit] { width:100%!important; }
}

/* Transfer invitation typography refinement. */
body.account-page .transfer-invitation,
body.account-page .transfer-invitation p,
body.account-page .transfer-expiry,
body.account-page .transfer-expiry span,
body.account-page .transfer-expiry strong,
body.account-page .transfer-invitation-actions button {
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body.account-page .account-card .transfer-request-copy,
body.account-page .account-card .transfer-explanation {
    font-size: 1.05rem !important;
    line-height: 1.65 !important;
}
body.account-page .account-card .transfer-explanation {
    margin: 24px auto 0 !important;
}
body.account-page .transfer-expiry {
    margin-top: 34px !important;
}
body.account-page .transfer-expiry-label {
    font-size: .82rem !important;
    line-height: 1.4 !important;
}
body.account-page .transfer-expiry strong {
    font-size: 1.12rem !important;
    line-height: 1.4 !important;
}
body.account-page .transfer-expiry span:last-child {
    font-size: .9rem !important;
    line-height: 1.45 !important;
}

/* Keep every line in the invitation expiry panel at the same readable body size. */
body.account-page .transfer-expiry,
body.account-page .transfer-expiry-label,
body.account-page .transfer-expiry strong,
body.account-page .transfer-expiry span:last-child {
    font-size: 1.05rem !important;
    line-height: 1.65 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body.account-page .transfer-expiry-label,
body.account-page .transfer-expiry span:last-child {
    font-weight: 400 !important;
}
body.account-page .transfer-expiry strong {
    font-weight: 700 !important;
}

/* Friendly system/error pages. Scoped so these styles cannot affect normal account forms. */
body.account-page.system-message-page main.account-card {
  width:min(100%,560px)!important;
  max-width:560px!important;
  padding:34px 42px 30px!important;
}
body.account-page.system-message-page .account-card > h1 { display:none; }
body.account-page.system-message-page .system-message { text-align:center; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important; }
body.account-page.system-message-page .system-message * { font-family:inherit!important; }
body.account-page.system-message-page .system-message-icon { display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; margin:0 auto 18px; border-radius:50%; background:#f3ead2; border:1px solid #d9c9a5; color:#6d5726; font-size:1.75rem; font-weight:700; line-height:1; }
body.account-page.system-message-page .system-message h2 { margin:0 0 12px; color:#203a30; font-size:1.55rem; line-height:1.2; font-weight:700; }
body.account-page.system-message-page .system-message p { max-width:440px; margin:0 auto!important; color:#56645d; font-size:1rem!important; line-height:1.65; }
body.account-page.system-message-page .system-message-actions { display:flex; justify-content:center; align-items:center; gap:10px; margin-top:24px; }
body.account-page.system-message-page .system-message-actions button,
body.account-page.system-message-page .system-message-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0!important; padding:10px 18px!important; border-radius:6px!important; font-size:.95rem!important; font-weight:600; line-height:1.2; text-decoration:none; cursor:pointer; }
body.account-page.system-message-page .system-message-actions .system-message-primary { width:auto!important; border:1px solid #254635!important; background:#254635!important; color:#fff!important; }
body.account-page.system-message-page .system-message-actions .system-message-primary:hover { background:#35634a!important; }
body.account-page.system-message-page .system-message-actions .system-message-secondary { border:1px solid #8ca092; background:#fffdf7; color:#254635; }
body.account-page.system-message-page .system-message-maintenance .system-message-icon { background:#e8eee9; border-color:#b9c8bd; color:#254635; font-size:0; }
body.account-page.system-message-page .system-message-maintenance .system-message-icon::before { content:""; width:25px; height:25px; background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23254635' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5-5L12 3.6 9.6 6 7.3 3.7a4 4 0 0 0 5 5l7.2 7.2a2 2 0 0 1-2.8 2.8l-7.2-7.2'/%3E%3Cpath d='m5 13-3.6 3.6a2 2 0 0 0 2.8 2.8L8 15.6'/%3E%3C/svg%3E"); }
body.account-page.system-message-page .maintenance-note { margin-top:14px!important; color:#7a7468!important; font-size:.88rem!important; }
@media(max-width:560px) {
  body.account-page.system-message-page main.account-card { padding:29px 24px 25px!important; }
  body.account-page.system-message-page .system-message-actions { flex-direction:column; }
  body.account-page.system-message-page .system-message-actions button,
  body.account-page.system-message-page .system-message-actions a { width:100%!important; }
}
