:root {
  color-scheme: dark;
  --bg: #090a0a;
  --panel: #111211;
  --gold: #c4a56c;
  --gold-light: #e7cea0;
  --white: #f1eee7;
  --muted: #adafa9;
  --line: rgba(194, 162, 104, .25);
  --serif: Baskerville, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --sans: Arial, Helvetica, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; background: var(--bg); color: var(--white); font: 16px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 50% 30%, rgba(196,165,108,.07), transparent 65%); }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 5px; }
p, h1 { margin: 0; }
.icon { width: 22px; height: 22px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.icon-definitions { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; z-index: 5; top: 10px; left: 10px; padding: 12px 18px; background: var(--gold-light); color: var(--bg); clip-path: inset(100%); }
.skip-link:focus { clip-path: none; }
.card-shell { width: min(100% - 40px, 480px); margin: 24px auto; }
.card-overline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 3px 17px; color: var(--muted); font-size: .65rem; }
.card-overline > span { letter-spacing: .13em; text-transform: uppercase; }
.card-overline > a { display: inline-flex; align-items: center; gap: 3px; min-height: 36px; }
.card-overline .icon { width: 14px; height: 14px; }
.professional-card { position: relative; border: 1px solid rgba(196,165,108,.43); background: linear-gradient(135deg, #191810 0%, #0e100f 38%, #0c0e0d 100%); box-shadow: 0 30px 70px rgba(0,0,0,.25); }
.professional-card::before { content: ""; position: absolute; pointer-events: none; inset: 7px; border: 1px solid rgba(196,165,108,.1); }
.identity { position: relative; padding: 30px 24px 25px; text-align: center; }
.official-logo { display: block; width: 170px; height: 170px; object-fit: contain; margin: 0 auto 23px; }
.honorific { color: var(--white); font: 1.2rem/1.3 var(--serif); }
h1 { margin-top: 4px; color: var(--gold-light); font: 2.2rem/1.12 var(--serif); letter-spacing: -.02em; }
.profession { margin-top: 18px; color: var(--gold-light); font-size: .66rem; letter-spacing: .32em; text-transform: uppercase; }
.location { display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 10px; font-size: .72rem; color: var(--muted); }
.location .icon { width: 13px; height: 13px; }
.slogan { display: flex; align-items: center; justify-content: center; gap: 15px; margin-top: 24px; color: var(--gold); }
.slogan p { font: italic 1.1rem/1.2 var(--serif); }
.slogan > span { width: 37px; height: 1px; background: var(--line); }
.connection { position: relative; padding: 0 28px 28px; }
.save-button { display: flex; justify-content: center; align-items: center; gap: 13px; min-height: 58px; padding: 16px; color: #17140d; background: linear-gradient(110deg,#e7cea0,#c4a56c); font-size: .87rem; font-weight: 600; transition: background .2s, transform .2s; }
.save-button > span { flex: 1; }
.save-button:hover { background: #edd8b0; transform: translateY(-1px); }
.save-arrow { width: 20px; height: 20px; }
.save-contact > p { padding: 10px 0 0; color: var(--muted); font-size: .75rem; text-align: center; line-height: 1.5; }
.communication { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 22px; border: 1px solid var(--line); }
.communication > a { min-height: 76px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 9px; font-size: .75rem; transition: background .2s; }
.communication > a + a { border-left: 1px solid var(--line); }
.communication .icon { color: var(--gold-light); width: 21px; height: 21px; }
.communication > a:hover { background: rgba(196,165,108,.08); }
.contact-details { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; column-gap: 8px; margin-top: 8px; font-size: .75rem; color: var(--muted); }
.contact-details a { display: inline-flex; align-items: center; min-height: 36px; }
.contact-details .email { overflow-wrap: anywhere; }
.contact-details a:hover { color: var(--gold-light); }
.consultation-link { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 18px; padding: 19px 0; border-block: 1px solid var(--line); }
.consultation-link strong { display: block; font: 1.25rem/1.25 var(--serif); }
.consultation-link small { display: block; margin-top: 7px; font-size: .75rem; color: var(--muted); line-height: 1.6; }
.consultation-link .icon { color: var(--gold); transition: transform .2s; }
.consultation-link:hover .icon { transform: translateX(3px); }
.consultation-link:hover strong { color: var(--gold-light); }
.practice { border-bottom: 1px solid var(--line); }
.practice summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; }
.practice summary::-webkit-details-marker { display: none; }
.practice summary small { display: block; color: var(--gold); font-size: .57rem; letter-spacing: .16em; }
.practice summary strong { display: block; font: 1.13rem/1.3 var(--serif); margin-top: 6px; }
.practice-plus { width: 18px; height: 18px; color: var(--gold); transition: transform .2s; }
.practice[open] .practice-plus { transform: rotate(45deg); }
.practice-list { list-style: none; margin: 0 0 18px; padding: 0; }
.practice-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 0; font-size: .77rem; color: var(--muted); }
.practice-list .icon { width: 15px; height: 15px; color: var(--gold); }
.practice-list a:hover { color: var(--gold-light); }
.online-links { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; }
.website-link { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: .75rem; color: var(--gold-light); }
.website-link .icon { width: 16px; height: 16px; }
.social-links { display: flex; gap: 2px; }
.social-links a { display: grid; place-items: center; width: 44px; height: 44px; color: var(--muted); }
.social-links .icon { width: 19px; height: 19px; }
.social-links a:hover { color: var(--gold-light); }
.card-footer { margin-top: 20px; padding: 0 8px; text-align: center; font-size: .75rem; line-height: 1.7; color: var(--muted); }
.card-footer p { max-width: 350px; margin-inline: auto; }
.card-footer a { display: inline-flex; align-items: center; min-height: 40px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line); }
@media (min-width: 800px) {
  body { display: grid; align-content: center; }
  .card-shell { width: min(100% - 80px, 900px); margin-block: 55px; }
  .card-overline { font-size: .69rem; margin-bottom: 18px; }
  .professional-card { display: grid; grid-template-columns: 1fr 1.05fr; }
  .identity { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 44px 35px; }
  .identity::after { content: ""; position: absolute; right: 0; top: 45px; bottom: 45px; width: 1px; background: linear-gradient(transparent, var(--line) 18%, var(--line) 82%, transparent); }
  .official-logo { width: 220px; height: 220px; margin-bottom: 30px; }
  .honorific { font-size: 1.32rem; }
  h1 { font-size: 2.62rem; }
  .profession { margin-top: 22px; }
  .location { margin-top: 13px; }
  .slogan { margin-top: 35px; }
  .connection { padding: 45px 38px 35px; align-self: center; }
  .card-footer { display: flex; justify-content: space-between; align-items: center; gap: 25px; text-align: left; padding-inline: 3px; }
  .card-footer p { margin: 0; max-width: none; }
  .card-footer a { flex-shrink: 0; }
}
@media (max-width: 359px) {
  .card-shell { width: calc(100% - 24px); margin-top: 15px; }
  .card-overline { font-size: .57rem; }
  .connection { padding-inline: 22px; }
  .official-logo { width: 155px; height: 155px; }
  h1 { font-size: 1.95rem; }
  .contact-details > span { display: none; }
  .contact-details { gap: 0 15px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
