:root { color-scheme:light; --profile-surface:#fff; --band-surface:#eae7df; --band-border:#d6d1c6; --link-hover:#53361f; --logo-filter:none; --logo-blend:multiply; --thumb-x:0px; --sun-color:#77521c; --moon-color:#b7cad8; }
:root[data-theme="dark"] { color-scheme:dark; --ink:#edf1f3; --muted:#b5c2c9; --blue:#dfc6a3; --line:#3a4b54; --paper:#101b22; --profile-surface:#15252e; --band-surface:#1d303a; --band-border:#42515a; --link-hover:#f3dfc3; --logo-filter:grayscale(1) invert(1); --logo-blend:screen; --thumb-x:44px; --sun-color:#b7cad8; --moon-color:#263744; }
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) { color-scheme:dark; --ink:#edf1f3; --muted:#b5c2c9; --blue:#dfc6a3; --line:#3a4b54; --paper:#101b22; --profile-surface:#15252e; --band-surface:#1d303a; --band-border:#42515a; --link-hover:#f3dfc3; --logo-filter:grayscale(1) invert(1); --logo-blend:screen; --thumb-x:44px; --sun-color:#b7cad8; --moon-color:#263744; }
}
/* Original logo background is exactly RGB(247,247,247); inversion yields RGB(8,8,8). */
.profile-section { background:#f7f7f7; }
:root[data-theme="dark"] .profile-section { background:#080808; }
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) .profile-section { background:#080808; } }
.diagnostics,.affiliations-section { background:var(--band-surface); border-color:var(--band-border); }
.affiliations-list li { border-color:var(--band-border); }
.original-logo { filter:var(--logo-filter); mix-blend-mode:normal; }
.brand-symbol { filter:grayscale(1) invert(1) contrast(1.4); }
.button-light,.skip { color:#182d3b; }
/* Keep the entire supplied portrait in view on desktop, including wide screens. */
@media(min-width:701px) {
  .hero-photo img { object-fit:contain; object-position:right center; }
}
.text-link:hover { color:var(--link-hover); }
.photo-frame,.location iframe { background:var(--band-surface); }
.header { position:sticky; top:0; z-index:40; display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:22px; }
.header nav { justify-content:center; }
.theme-switch { position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:space-between; justify-self:end; flex:none; width:88px; height:44px; padding:0 12px; border:1px solid #ab9270; border-radius:999px; background:#273d4b; cursor:pointer; appearance:none; }
.theme-switch[hidden] { display:none; }
.theme-thumb { position:absolute; z-index:-1; top:4px; left:4px; width:34px; height:34px; border-radius:50%; background:#efdfc8; box-shadow:0 2px 7px #04182a40; transform:translateX(var(--thumb-x)); }
.theme-switch svg { display:block; flex:none; }
.theme-sun { color:var(--sun-color); }
.theme-moon { color:var(--moon-color); }
.theme-switch:hover { border-color:#efdfc8; }
.theme-switch:focus-visible { outline:none; box-shadow:inset 0 0 0 2px #dfc6a3; }
@media(max-width:1250px) { .header { grid-template-columns:minmax(0,1fr) auto auto; }.header nav { grid-row:2; grid-column:1 / -1; }.theme-switch { grid-column:3; grid-row:1; }.header-contact { grid-column:2; grid-row:1; } }
@media(max-width:700px) { .header { grid-template-columns:minmax(0,1fr) 88px; gap:16px 12px; }.header>.brand { min-width:0; }.theme-switch { grid-column:2; }.header-contact { grid-column:1 / -1; grid-row:2; justify-content:space-between; }.header nav { grid-row:3; }.wordmark strong { font-size:.75rem; } }
@media(prefers-reduced-motion:no-preference) { .theme-thumb { transition:transform .24s cubic-bezier(.2,.8,.2,1); }.theme-switch svg { transition:color .24s ease; } }
@media(forced-colors:active) { .theme-switch { border-color:ButtonText; }.theme-thumb { background:Highlight; }.theme-switch svg { color:ButtonText; } }
.menu-toggle { display:none; }
:root [data-contact-action="whatsapp"],:root .mobile-drawer [data-contact-action="whatsapp"] { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:15px 20px; min-height:52px; max-width:100%; background:#25d366; border:1px solid #25d366; border-radius:12px; color:#063b24; font-weight:700; line-height:1.5; white-space:normal; }
[data-contact-action="whatsapp"]::before { content:""; display:block; flex:none; width:24px; height:24px; background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round' d='M20.5 11.7a8.5 8.5 0 0 1-12.8 7.4L3 20.5l1.4-4.6A8.5 8.5 0 1 1 20.5 11.7Z'/%3E%3Cpath d='M8.4 6.7c-.5 0-1.2.8-1.2 1.8 0 2.7 3.8 6.8 6.9 7 .9 0 2.1-.7 2.2-1.5l-.1-.7-2.2-1c-.3-.1-.5 0-.7.3l-.7.8c-1.3-.6-2.5-1.7-3.2-3l.7-.8c.2-.2.2-.4.1-.7l-.9-2.1c-.1-.2-.5-.2-.9-.1Z'/%3E%3C/svg%3E") center / contain no-repeat; }
:root [data-contact-action="whatsapp"]:hover,:root .mobile-drawer [data-contact-action="whatsapp"]:hover { background:#1ebe5d; border-color:#1ebe5d; color:#063b24; }
:root .header > #header-appointment { width:44px; height:44px; min-height:44px; padding:10px; gap:0; font-size:0; }
.header > #header-appointment > span { display:none; }
[data-contact-action="whatsapp"]:focus-visible { outline-color:#128c7e; }
@media(max-width:700px) {
  .header[data-menu-ready] { grid-template-columns:minmax(0,1fr) 44px; gap:0 16px; }
  .header[data-menu-ready]>.brand { grid-column:1; grid-row:1; }
  .header[data-menu-ready] .menu-toggle { display:flex; grid-column:2; grid-row:1; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:44px; height:44px; border:1px solid #ab9270; border-radius:8px; background:#273d4b; color:#efdfc8; cursor:pointer; }
  .menu-toggle span { display:block; width:20px; height:2px; background:currentColor; }
  .menu-toggle:focus-visible { outline:3px solid #dfc6a3; outline-offset:4px; }
  .header[data-menu-ready]>nav,.header[data-menu-ready]>.header-contact,.header[data-menu-ready]>.theme-switch { display:none; }
}
@media(prefers-reduced-motion:no-preference) { .menu-toggle span { transition:transform .2s ease,opacity .2s ease; } }
.mobile-drawer { position:fixed; inset:0 0 0 auto; width:min(380px,calc(100vw - 48px)); max-width:none; height:100dvh; max-height:none; padding:0; margin:0; border:0; background:var(--paper); color:var(--ink); box-shadow:-16px 0 48px #0004; overscroll-behavior:contain; }
.mobile-drawer::backdrop { background:#031019b3; }
.drawer-content { display:flex; flex-direction:column; min-height:100%; padding:max(20px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom)); }
.drawer-theme { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:auto; padding-top:32px; color:var(--muted); font-size:.9375rem; }
.drawer-heading { display:flex; align-items:center; justify-content:space-between; font-size:1.25rem; font-weight:700; }
.menu-close { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:8px; background:var(--band-surface); color:var(--ink); font:400 1.9rem/1 Arial,sans-serif; cursor:pointer; }
.menu-close:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.header .mobile-drawer nav { display:flex; flex-direction:column; align-items:stretch; gap:0; margin-top:24px; }
.header .mobile-drawer nav a { min-height:52px; padding:15px 0; border-bottom:1px solid var(--line); font-size:1rem; }
.mobile-drawer .header-contact { display:flex; min-height:52px; margin-top:28px; font-size:.875rem; background:var(--navy); color:#fff; }
.mobile-drawer .theme-switch { display:flex; margin:0; }
html { scroll-padding-top:130px; }
@media(max-width:1250px) { html { scroll-padding-top:180px; } }
@media(max-width:700px) { html { scroll-padding-top:100px; } }
@media(prefers-reduced-motion:no-preference) { .mobile-drawer[open] { animation:drawer-enter .28s cubic-bezier(.2,.8,.2,1); }@keyframes drawer-enter { from { transform:translateX(100%); }to { transform:translateX(0); } } }
