/* Shared structure; each department owns its palette, typography and composition. */
:root { --ink:#25282b; --muted:#666b6e; --paper:#f8f6f1; --line:#deddd7; --accent:#313a35; --button-text:#fff; --radius:3px; }
html { scroll-padding-top:100px; }
body { font-size:14px; }
a,button { transition:color .18s,background-color .18s; }
h1,h2,h3 { text-wrap:balance; }
input,textarea,select { border-radius:3px; }
img { object-fit:cover; }
fieldset { min-width:0; }
.workspace { grid-template-columns:248px minmax(0,1fr); }
.workspace-sidebar { position:sticky; height:100dvh; min-height:0; overflow-y:auto; scrollbar-width:thin; padding:25px 15px 20px; background:#232929; color:#c1c8c4; }
.workspace-brand { padding:2px 12px 25px; font-size:21px; }
.workspace-brand small { letter-spacing:1px; font-size:9px; white-space:normal; line-height:1.7; }
.workspace-sidebar nav a { display:block; padding:11px 13px; font-size:12px; border-radius:2px; border-left:2px solid transparent; line-height:1.5; }
.workspace-sidebar nav a:hover { background:#ffffff0b; color:white; }
.workspace-sidebar nav a[aria-current] { background:#ffffff0e; color:white; border-left-color:#bdc4b7; }
.workspace-sidebar .nav-label { letter-spacing:1.1px; font-size:9px; color:#9daaa4; }
.workspace-topbar { background:#fff; min-height:76px; height:auto; padding:18px 36px; }
.workspace-breadcrumb { display:flex; gap:14px; align-items:center; font-size:12px; }
.workspace-breadcrumb span { color:var(--muted); }
.workspace-breadcrumb strong { font-weight:600; }
.workspace-user { display:flex; align-items:center; gap:10px; margin-left:auto; }
.workspace-content { padding:36px; max-width:1600px; width:100%; margin-inline:auto; }
.workspace-main { background:var(--paper); }
.nav-toggle { display:none!important; }
.department-footer { margin-top:auto; padding:24px 36px; display:flex; gap:24px; border-top:1px solid var(--line); font-size:11px; color:var(--muted); }
.department-footer span { margin-right:auto; }
.department-section { padding:28px 0; border-top:1px solid var(--line); margin-top:24px; }
.department-section h2 { font-size:23px; }
.detail-columns { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; }
.case-form { max-width:780px; padding:30px; border:1px solid var(--line); background:#fff; }
.service-register article { display:flex; gap:35px; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding:28px 0; }
.service-register article>div { max-width:720px; }
.service-register article h2 { font-size:24px; }
.service-register article>a { flex-shrink:0; }
.service-register p { margin-bottom:0; }
.admin-summary,.record-summary,.investigator-summary,.lifestyle-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:26px 0; border-block:1px solid var(--line); margin:28px 0; }
.admin-summary article,.record-summary article,.investigator-summary article,.lifestyle-summary article { padding:12px 24px; border-right:1px solid var(--line); }
.admin-summary article:first-child,.record-summary article:first-child,.investigator-summary article:first-child,.lifestyle-summary article:first-child { padding-left:0; }
.admin-summary article:last-child,.record-summary article:last-child,.investigator-summary article:last-child,.lifestyle-summary article:last-child { border:0; }
.admin-summary span,.record-summary span,.investigator-summary span,.lifestyle-summary span { display:block; color:var(--muted); font-size:12px; }
.admin-summary strong,.record-summary strong,.investigator-summary strong,.lifestyle-summary strong { display:block; font-size:30px; letter-spacing:-1px; line-height:1.5; font-weight:500; }
.investigator-summary a { font-size:11px; text-decoration:underline; }
.record-summary,.lifestyle-summary { grid-template-columns:repeat(3,1fr); }
.admin-department-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 40px; }
.admin-console { --paper:#f4f3ef; --accent:#353d38; --muted:#686e69; }
.admin-console .workspace-sidebar { background:#242b28; }
.admin-console .stat-card { box-shadow:none; }
.admin-console .access-tag { background:#eff1eb; color:#46554a; }
.admin-console .badge { background:#edf0e9; color:#334336; }
.investigator-console { --paper:#191c1e; --ink:#edece6; --muted:#b0b5b5; --line:#3a3f41; --accent:#c3c8be; --button-text:#171c19; background:var(--paper); }
.investigator-console .workspace-sidebar { background:#121618; color:#b1b7b6; }
.investigator-console .workspace-brand { color:#edece6; }
.investigator-console .workspace-topbar { background:#1b1f21; border-color:var(--line); }
.investigator-console .user-avatar { color:#e3e7dc; background:#353e37; }
.investigator-console h1,.investigator-console h2 { font-family:'Manrope',Arial,sans-serif; }
.investigator-intro { padding:35px 0; max-width:750px; }
.investigator-intro h1 { font-size:clamp(36px,4vw,58px); margin:18px 0; letter-spacing:-2px; }
.investigator-intro p { max-width:500px; }
.investigator-console .case-form,.investigator-console .card,.investigator-console .settings-section { background:#202527; border-color:var(--line); }
.investigator-console input,.investigator-console select,.investigator-console textarea { background:#171c1e; color:var(--ink); border-color:#505a5c; }
.investigator-console th { background:#23292b; color:#c2c9c7; }
.investigator-console td { border-color:var(--line); }
.investigator-console .notice { background:#29382d; color:#dae7d9; border-color:#465649; }
.investigator-console .notice.error { background:#472b28; color:#f8ded6; }
.investigator-console .button.secondary,.investigator-console button.secondary { background:#394143; color:#eceeea; }
.investigator-console .timeline article:before { background:#afb7ad; }
.investigator-console .wallet-balance-grid,.investigator-console .wallet-balance-grid article { background:#242a2b; color:var(--ink); border-color:var(--line); }
.withdrawal-entry { padding:24px 0; border-bottom:1px solid var(--line); }
.lifestyle-console { --paper:#f9f5ed; --accent:#605446; --muted:#716b62; --line:#e1d9cd; }
.lifestyle-console h1,.lifestyle-console h2 { font-family:'Libre Baskerville',Georgia,serif; font-weight:400; letter-spacing:-1px; }
.lifestyle-console .workspace-sidebar { background:#ece5d9; color:#605b53; }
.lifestyle-console .workspace-brand { color:#302c27; }
.lifestyle-console .workspace-brand small { color:#766e62; }
.lifestyle-console .workspace-sidebar nav a:hover,.lifestyle-console .workspace-sidebar nav a[aria-current] { background:#ded4c3; color:#312c24; border-left-color:#746249; }
.lifestyle-intro { display:grid; grid-template-columns:1fr 1fr; gap:35px; align-items:center; }
.lifestyle-intro h1 { font-size:clamp(34px,3.8vw,54px); line-height:1.2; margin:20px 0; }
.lifestyle-intro>img { width:100%; height:350px; object-position:center; }
.lifestyle-talent-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.lifestyle-talent-grid img { width:100%; height:245px; object-position:center 20%; margin-bottom:14px; }
.lifestyle-talent-grid strong,.lifestyle-talent-grid span { display:block; }
.lifestyle-talent-grid span { font-size:11px; color:var(--muted); margin-top:5px; }
.owned-cards { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.owned-cards article { padding:35px; background:#e7ddc9; border:1px solid #d1c5ae; }
.purchase-checkout { max-width:640px; padding:35px 0; }
.purchase-checkout>strong { font-size:24px; }
.military-console { --paper:#edf0f1; --ink:#22313b; --muted:#64747e; --line:#cbd3d8; --accent:#243e51; }
.military-console .workspace-sidebar { background:#142a3a; color:#b9c7d1; }
.military-console .workspace-brand small { color:#a4bac7; }
.military-console .workspace-sidebar nav a[aria-current] { background:#24465a; border-left-color:#a5bac6; }
.military-console h1,.military-console h2 { font-family:'Manrope',Arial,sans-serif; font-weight:600; letter-spacing:-1px; }
.military-intro { padding:38px; background:#173447; color:#ecf0f1; border-left:4px solid #9fb4c0; }
.military-intro h1 { font-size:clamp(34px,4vw,55px); margin:20px 0; }
.military-intro p { color:#bfced7; max-width:500px; }
.military-intro .eyebrow { color:#b2c3ce; }
.military-intro .button { background:#d4dfe4; color:#173447; }
.record-category-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.record-category-grid a { padding:25px 18px; display:flex; align-items:center; justify-content:space-between; gap:15px; background:#e0e6e9; border:1px solid #cbd4da; }
.record-category-heading { padding:30px 0; max-width:800px; }
.medical-console { --paper:#f2f6f3; --ink:#223b34; --muted:#627b70; --line:#d1ded6; --accent:#356a56; }
.medical-console .workspace-sidebar { background:#edf3ee; color:#4d675a; border-right:1px solid #d1ded6; }
.medical-console .workspace-brand { color:#244333; }
.medical-console .workspace-brand small { color:#6b8573; }
.medical-console .workspace-sidebar nav a:hover,.medical-console .workspace-sidebar nav a[aria-current] { background:#d8e6dc; color:#244333; border-left-color:#3f7157; }
.medical-console h1,.medical-console h2 { font-family:'Libre Baskerville',Georgia,serif; font-weight:400; }
.medical-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:35px; align-items:center; }
.medical-intro h1 { font-size:clamp(32px,3.5vw,48px); line-height:1.25; margin:20px 0; }
.medical-intro>img { width:100%; height:310px; }
.medical-console .record-category-grid { grid-template-columns:1fr 1fr; }
.medical-console .record-category-grid a { background:#e1eee4; border-color:#cddfd2; }
.medical-console .workspace-topbar { background:#fafffb; }
.event-register { margin:30px 0; }
.event-row { display:flex; gap:30px; align-items:center; padding:25px 0; border-top:1px solid var(--line); }
.event-date { font:28px 'Libre Baskerville',Georgia,serif; min-width:115px; }
.event-row>span:nth-child(2) { flex:1; }
.event-row strong,.event-row small { display:block; }
.event-row strong { font-size:22px; }
.event-row small { color:var(--muted); }
.payment-instructions { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:25px 0; }
.payment-instructions article { padding:22px; border:1px solid var(--line); }
.payment-instructions code { display:block; font-size:13px; overflow-wrap:anywhere; }
.payment-qr { width:150px; height:150px; object-fit:contain; margin-top:20px; }
.logo-preview { object-fit:contain; }
/* Public editorial composition. Photography does the visual work. */
.public-header { background:#fbf9f4; border-bottom:1px solid #dddcd6; color:#292c2b; }
.public-header .brand small { color:#787e78; font-size:8px; letter-spacing:1.1px; }
.public-header .brand>.icon { color:#444d43; }
.public-main { padding:45px max(28px,calc((100vw - 1240px)/2)); }
.home-page .public-main { padding:0; }
.platform-hero { position:relative; height:min(820px,calc(100svh - 80px)); min-height:630px; isolation:isolate; overflow:hidden; background:#1b2424; color:#f8f7ee; }
.hero-photography,.hero-solid-shade { position:absolute; inset:0; z-index:-1; }
.hero-photography img,.hero-photography video { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-photography img { animation:cinematic-depth 18s ease-in-out infinite alternate; }
.hero-photography video { opacity:0; }
.platform-hero.is-video-playing video { opacity:1; }
.hero-solid-shade { background:#111b20; opacity:.58; }
.hero-editorial-copy { padding-top:95px; position:relative; }
.hero-editorial-copy .eyebrow { color:#dfd7c2; font-size:10px; letter-spacing:3px; }
.hero-editorial-copy h1 { font-family:'Manrope',Arial,sans-serif; font-size:clamp(48px,5.8vw,83px); font-weight:500; line-height:1.08; letter-spacing:-4px; margin:26px 0; max-width:900px; }
.hero-editorial-copy h1 em { font-family:'Libre Baskerville',Georgia,serif; font-weight:400; font-style:italic; font-size:.85em; }
.hero-editorial-copy p { color:#e3e6df; max-width:520px; font-size:15px; line-height:1.9; }
.hero-editorial-copy .button { background:#e6ddc9; color:#29362e; }
.hero-editorial-copy .button.outline { background:transparent; color:#f8f7ee; border-color:#a5aea4; }
.hero-bottom { position:absolute; bottom:28px; left:0; right:0; display:flex; justify-content:space-between; gap:20px; font-size:10px; letter-spacing:1.5px; color:#e1e5df; }
.hero-bottom button { color:inherit; background:transparent; border:0; padding:8px 0; font-size:11px; }
.is-motion-paused .hero-photography img { animation-play-state:paused; }
@keyframes cinematic-depth { from { transform:scale(1); } to { transform:scale(1.055) translateX(-.6%); } }
.worlds-section { padding:85px 0 50px; }
.worlds-section>.section-heading { align-items:start; margin-bottom:45px; }
.worlds-section>.section-heading h2 { font:40px/1.3 'Libre Baskerville',Georgia,serif; letter-spacing:-1.2px; margin:0; }
.world-feature { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:center; margin:0 0 65px; }
.world-feature:nth-of-type(even) { grid-template-columns:1fr 1.2fr; }
.world-feature:nth-of-type(even) .world-image { order:2; }
.world-image { overflow:hidden; }
.world-image img { width:100%; height:365px; }
.world-copy { max-width:430px; }
.world-copy h3 { font:34px/1.3 'Libre Baskerville',Georgia,serif; letter-spacing:-1px; margin:20px 0; }
.world-copy p { font-size:14px; line-height:1.9; margin-bottom:24px; }
.home-talent-section { background:#ece6dc; padding:70px 0; }
.home-talent-section h2 { font:36px/1.3 'Libre Baskerville',Georgia,serif; }
.homepage-talent-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:22px; margin-top:35px; }
.home-talent>div { overflow:hidden; }
.home-talent img { width:100%; height:255px; object-position:50% 18%; transition:transform .35s; }
.home-talent:hover img { transform:scale(1.035); }
.home-talent>span { display:block; text-transform:uppercase; letter-spacing:1.4px; font-size:8px; color:#676962; margin:17px 0 5px; }
.home-talent h3 { font-size:15px; margin-bottom:0; }
.home-talent-section .editorial-note { margin-top:30px; }
.investigation-band { background:#21292b; color:#f3f4ec; padding:75px 0; }
.investigation-band>.container { display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.investigation-band h2 { font-size:45px; line-height:1.18; letter-spacing:-1.6px; margin:20px 0; }
.investigation-band p { color:#c0c9c3; max-width:470px; }
.investigation-band .eyebrow { color:#b5bda9; }
.home-service-list a { display:flex; justify-content:space-between; gap:20px; padding:21px 0; border-top:1px solid #525b57; font-size:13px; }
.home-records-section { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; padding:85px 0; }
.home-records-section h2,.home-about h2 { font:36px/1.3 'Libre Baskerville',Georgia,serif; margin:20px 0; }
.home-records-section img { width:100%; height:375px; }
.home-events { padding:0 0 70px; }
.fan-experience-note { display:flex; justify-content:space-between; gap:40px; padding:35px 0; border-block:1px solid var(--line); }
.fan-experience-note p { margin-bottom:0; max-width:620px; }
.fan-experience-note>a { align-self:center; flex-shrink:0; }
.home-about { padding:75px 0; display:grid; grid-template-columns:1fr 1fr; gap:90px; border-top:1px solid var(--line); }
.home-about li { padding:8px 0; color:var(--muted); }
.home-contact { background:#e2e8df; padding:65px 0; }
.home-contact>.container { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.home-contact h2 { font:35px/1.3 'Libre Baskerville',Georgia,serif; margin:20px 0 15px; }
.public-footer { background:#202927; }
.public-footer p { color:#bbc5bd; }
.public-footer .footer-bottom { color:#aebbb1; }
.department-landing { display:grid; grid-template-columns:1.25fr 1fr; gap:65px; align-items:center; margin:0 0 65px; }
.department-landing>img { width:100%; height:470px; }
.department-landing h1 { font-size:clamp(38px,4vw,56px); margin:20px 0; }
.landing-medical h1 { font-family:'Libre Baskerville',Georgia,serif; font-size:45px; }
.public-departments,.about-page { max-width:1000px; margin:20px auto; }
.about-page>p { max-width:750px; font-size:16px; line-height:1.9; }
.about-page h2 { margin-top:45px; }
.fan-product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.fan-product-grid article { border-top:1px solid var(--line); padding:25px 0; }
.fan-product-grid img { width:100%; height:320px; margin-bottom:20px; }
.fan-product-grid strong { display:block; margin:20px 0; }
.event-feature { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.event-feature>img { width:100%; height:450px; }
/* Authentication: visible image choices, with a real radio selection. */
.account-choice { border:0; padding:0; margin:25px 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.account-choice legend { font-weight:700; font-size:14px; margin-bottom:15px; }
.account-option { position:relative; display:block; cursor:pointer; padding:0!important; border:2px solid #dedbd3; background:#f7f4ed; margin:0!important; overflow:hidden; }
.account-option>input { position:absolute; right:12px; top:12px; z-index:1; width:18px!important; height:18px; margin:0; accent-color:#344a3b; }
.account-option img { width:100%; height:108px; }
.account-option>span { padding:13px; display:block; }
.account-option strong { display:block; font-size:12px; }
.account-option small { display:block; font-size:10px; line-height:1.6; color:#6b746c; margin-top:6px; }
.account-option:has(input:checked) { border-color:#425c48; background:#e7eee4; }
.account-option:has(input:focus-visible) { outline:3px solid #b49559; outline-offset:3px; }
.consumer-auth-shell:has(.account-choice) { grid-template-columns:.8fr 1.2fr; }
.consumer-auth-shell:has(.account-choice) .consumer-auth-story { position:sticky; top:25px; min-height:660px; align-self:start; }
.consumer-auth-shell:has(.account-choice) .consumer-auth-story>img { height:100%; }
.consumer-auth-form h2 { font-family:'Libre Baskerville',Georgia,serif; }
.consumer-auth-story>div { background:#172020b8; }
.consumer-auth-story h1 { font-family:'Libre Baskerville',Georgia,serif; line-height:1.3; letter-spacing:-1px; }
@media(max-width:1100px) {
    .world-feature,.world-feature:nth-of-type(even) { gap:40px; }
    .homepage-talent-grid { grid-template-columns:repeat(3,1fr); }
    .home-talent img { height:330px; }
    .workspace-content { padding:28px; }
    .lifestyle-talent-grid { gap:15px; }
    .lifestyle-talent-grid img { height:190px; }
    .record-category-grid { grid-template-columns:1fr 1fr; }
    .hero-editorial-copy h1 { letter-spacing:-3px; }
}
@media(max-width:900px) {
    .workspace { grid-template-columns:minmax(0,1fr); }
    .workspace-sidebar { position:fixed; width:280px; height:100dvh; top:0; left:0; display:none; z-index:50; box-shadow:0 0 0 100vmax #14221c55; }
    .workspace-sidebar.is-open { display:flex; }
    .workspace-topbar { padding:16px 24px; }
    .nav-toggle { display:inline-flex!important; background:transparent!important; border:1px solid var(--line)!important; color:var(--ink)!important; padding:9px!important; }
    .workspace-breadcrumb { flex-direction:column; align-items:start; gap:0; font-size:11px; }
    .workspace-user>span:last-child { display:none; }
    .platform-hero { min-height:620px; }
    .hero-editorial-copy { padding-top:85px; }
    .hero-editorial-copy h1 { font-size:58px; }
    .worlds-section { padding:55px 0 20px; }
    .world-feature { margin-bottom:45px; }
    .world-image img { height:280px; }
    .world-copy h3 { font-size:29px; }
    .investigation-band>.container,.home-records-section,.home-about { gap:45px; }
    .department-landing { gap:30px; }
    .department-landing>img { height:400px; }
    .consumer-auth-shell:has(.account-choice) { grid-template-columns:1fr; }
    .consumer-auth-shell:has(.account-choice) .consumer-auth-story { position:relative; top:auto; min-height:260px; height:260px; }
    .consumer-auth-shell:has(.account-choice) .consumer-auth-story>div { padding:30px; }
    .consumer-auth-shell:has(.account-choice) .consumer-auth-story h1 { font-size:30px; }
}
@media(max-width:650px) {
    .container { width:calc(100% - 40px); }
    .public-main { padding:30px 20px; }
    .public-header { padding-inline:20px; }
    .public-header .brand { font-size:19px; }
    .platform-hero { height:700px; min-height:0; }
    .hero-editorial-copy { padding-top:90px; }
    .hero-editorial-copy h1 { font-size:45px; letter-spacing:-2px; margin:23px 0; }
    .hero-editorial-copy p { font-size:13px; max-width:335px; }
    .hero-editorial-copy .actions { align-items:stretch; flex-direction:column; max-width:300px; gap:12px; }
    .hero-bottom { flex-direction:column; align-items:start; gap:6px; bottom:25px; }
    .worlds-section>.section-heading { display:block; }
    .worlds-section>.section-heading h2 { font-size:29px; margin-top:18px; }
    .world-feature,.world-feature:nth-of-type(even) { grid-template-columns:1fr; gap:25px; margin-bottom:50px; }
    .world-feature:nth-of-type(even) .world-image { order:0; }
    .world-image img { height:285px; }
    .world-copy h3 { font-size:30px; margin:15px 0; }
    .home-talent-section { padding:45px 0; }
    .home-talent-section .section-heading { display:block; }
    .home-talent-section h2 { font-size:28px; }
    .homepage-talent-grid { grid-template-columns:1fr 1fr; gap:28px 16px; }
    .home-talent img { height:245px; }
    .home-talent h3 { font-size:14px; }
    .investigation-band { padding:50px 0; }
    .investigation-band>.container,.home-records-section,.home-about { grid-template-columns:1fr; gap:35px; }
    .investigation-band h2 { font-size:35px; }
    .home-records-section { padding:50px 0; }
    .home-records-section h2,.home-about h2 { font-size:29px; }
    .home-records-section img { height:275px; }
    .home-events { padding-bottom:45px; }
    .event-row { gap:15px; }
    .event-date { font-size:22px; min-width:80px; }
    .event-row strong { font-size:16px; }
    .fan-experience-note,.home-contact>.container { flex-direction:column; align-items:start; gap:25px; }
    .fan-experience-note>a { align-self:start; }
    .home-about { padding:45px 0; }
    .home-contact { padding:45px 0; }
    .home-contact h2 { font-size:29px; }
    .workspace-content { padding:25px 20px; }
    .workspace-topbar { gap:12px; padding:14px 20px; }
    .department-footer { padding:20px; gap:14px; font-size:10px; flex-wrap:wrap; }
    .detail-columns,.admin-department-grid,.lifestyle-intro,.medical-intro { grid-template-columns:1fr; gap:20px; }
    .admin-summary,.investigator-summary { grid-template-columns:1fr 1fr; }
    .admin-summary article,.investigator-summary article { padding:12px; border:0; }
    .admin-summary article:first-child,.investigator-summary article:first-child { padding-left:12px; }
    .admin-summary strong,.investigator-summary strong { font-size:27px; }
    .record-summary article,.lifestyle-summary article { padding:5px 12px; }
    .record-summary span,.lifestyle-summary span { font-size:10px; }
    .record-summary strong,.lifestyle-summary strong { font-size:25px; }
    .lifestyle-intro>img { height:230px; }
    .lifestyle-talent-grid { grid-template-columns:1fr 1fr; gap:25px 15px; }
    .lifestyle-talent-grid img { height:240px; }
    .military-intro { padding:25px; }
    .record-category-grid,.medical-console .record-category-grid { grid-template-columns:1fr; }
    .record-category-grid a { padding:18px; }
    .medical-intro>img { height:240px; }
    .case-form { padding:20px; }
    .service-register article { flex-direction:column; align-items:start; gap:20px; }
    .payment-instructions,.owned-cards,.fan-product-grid,.event-feature,.department-landing { grid-template-columns:1fr; gap:25px; }
    .department-landing>img,.event-feature>img { height:290px; }
    .department-landing h1,.landing-medical h1 { font-size:36px; }
    .account-option img { height:90px; }
    .account-option>span { padding:10px; }
    .account-option strong { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { animation:none!important; transition:none!important; }
    .hero-photography video { display:none; }
}

/* Designed confirmation dialog (assets/app.js) used by every layout. */
.app-confirm { width: min(440px, calc(100vw - 24px)); padding: 22px 22px 18px; border: 0; border-top: 4px solid #185bc1; border-radius: 12px; background: #fff; color: #34485f; box-shadow: 0 30px 80px #0b234455; font-family: 'Manrope', system-ui, sans-serif; }
.app-confirm.is-danger { border-top-color: #a3262c; }
.app-confirm::backdrop { background: #0b2344a6; }
.app-confirm h2 { margin: 0 0 6px; color: #14263d; font-size: 18px; font-weight: 750; }
.app-confirm p { margin: 0 0 18px; font-size: 14px; line-height: 1.55; }
.app-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; }
html body dialog.app-confirm .app-confirm-actions button { box-shadow: none; min-height: 40px; padding: 8px 16px; border: 1px solid #d3dce8; border-radius: 8px; background: #fff; color: #14263d; font: 700 13.5px 'Manrope', sans-serif; cursor: pointer; }
html body dialog.app-confirm .app-confirm-actions .app-confirm-ok { border-color: #185bc1; background: #185bc1; color: #fff; }
html body dialog.app-confirm.is-danger .app-confirm-ok { border-color: #a3262c; background: #a3262c; }

/* Persistent support-session banner (includes/support-session.php). Stays above every portal layout. */
.support-banner { position: sticky; top: 0; z-index: 1000; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 9px 16px; background: #7a1f24; color: #fff; font: 500 13px/1.45 'Manrope', system-ui, sans-serif; }
.support-banner p { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0; color: #fff; }
.support-banner strong { font-weight: 800; letter-spacing: .02em; }
.support-banner span { color: #f6dcdd; }
.support-banner form { margin: 0; }
html body .support-banner form button { width: auto; box-shadow: none; min-height: 34px; padding: 6px 14px; border: 1px solid #fff; border-radius: 7px; background: #fff; color: #7a1f24; font: 800 13px 'Manrope', sans-serif; cursor: pointer; }
html body .support-banner form button:hover { background: #fbe9ea; }

/* Account closure panel and generic member dialog (includes/account-close-panel.php). */
.account-close { margin-top: 18px; padding: 20px 22px; border: 1px solid #f0cfd1; border-radius: 10px; background: #fff; font-family: 'Manrope', system-ui, sans-serif; }
html body .account-close h2 { letter-spacing: -.01em; font-family: 'Manrope', system-ui, sans-serif; margin: 0 0 6px; color: #7b1d22; font-size: 16px; font-weight: 750; }
html body .account-close p { margin: 0 0 12px; color: #5b6676; font-size: 13.5px; }
.account-close-blockers { margin: 0 0 12px; padding-left: 18px; color: #7b1d22; font-size: 13px; }
html body .account-close .account-close-open { width: auto; box-shadow: none; min-height: 40px; padding: 8px 15px; border: 1px solid #e8b9bc; border-radius: 8px; background: #fff; color: #a3262c; font: 700 13.5px 'Manrope', sans-serif; cursor: pointer; }
html body .account-close .account-close-open:hover { background: #fcebea; }
.app-dialog { width: min(500px, calc(100vw - 24px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-top: 4px solid #185bc1; border-radius: 12px; background: #fff; color: #34485f; box-shadow: 0 30px 80px #0b234455; font-family: 'Manrope', system-ui, sans-serif; }
.app-dialog.is-danger { border-top-color: #a3262c; }
.app-dialog::backdrop { background: #0b2344a6; }
.app-dialog-form { display: grid; gap: 12px; padding: 20px 22px; }
.app-dialog-form header { display: flex; justify-content: space-between; gap: 12px; }
.app-dialog-form h2 { margin: 0; color: #14263d; font-size: 18px; font-weight: 750; }
html body dialog.app-dialog .app-dialog-x { display: grid; place-items: center; width: 34px; min-width: 34px; box-shadow: none; height: 34px; min-height: 34px; padding: 0; border: 1px solid #d3dce8; border-radius: 8px; background: #fff; color: #14263d; font-size: 20px; line-height: 1; cursor: pointer; }
.app-dialog-list { display: grid; gap: 6px; margin: 0; padding-left: 18px; font-size: 13.5px; }
.app-dialog-alert { display: grid; gap: 4px; padding: 12px 14px; border-radius: 8px; background: #fcebea; color: #7b1d22; font-size: 13.5px; }
.app-dialog-form label { display: grid; gap: 5px; margin: 0; color: #14263d; font-size: 13px; font-weight: 700; }
.app-dialog-form label small { color: #66788d; font-weight: 500; }
.app-dialog-form :is(input:not([type=checkbox]), textarea) { width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid #d3dce8; border-radius: 8px; font: 500 14px 'Manrope', sans-serif; box-sizing: border-box; }
.app-dialog-form .app-dialog-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; }
.app-dialog-check input { width: 18px; height: 18px; margin: 1px 0 0; }
.app-dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding-top: 4px; }
html body dialog.app-dialog .app-dialog-actions button { width: auto; box-shadow: none; min-height: 40px; padding: 8px 16px; border: 1px solid #d3dce8; border-radius: 8px; background: #fff; color: #14263d; font: 700 13.5px 'Manrope', sans-serif; cursor: pointer; }
html body dialog.app-dialog .app-dialog-actions button.is-danger { border-color: #a3262c; background: #a3262c; color: #fff; }
