/*
Theme Name: Eighth Arch
Description: A custom public website and administration portal for Ohio's 8th Arch.
Version: 1.1.2
Requires at least: 6.4
Requires PHP: 8.1
License: GPL-2.0-or-later
*/
:root{--purple:#4b1769;--ink:#252536;--muted:#565b6c;--line:#d4d2dc;--white:#fff;--soft:#f7f7f9;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
.account-welcome{display:block;padding:10px 12px 0;font-size:13px;color:var(--muted)}.account-name{display:block;font-weight:600;padding:8px 12px!important;overflow-wrap:anywhere}.account-name+a{border-top:1px solid var(--line);margin-top:6px}
.account-control{position:relative;display:flex;align-items:center}.profile-toggle{display:flex;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center}.profile-toggle img{width:36px;height:36px;object-fit:cover;border-radius:50%;display:block}.account-menu{position:absolute;right:0;top:calc(100% + 12px);width:170px;background:#fff;border:1px solid #d4d2dc;border-radius:5px;box-shadow:0 8px 24px #25132d18;padding:6px;z-index:20;font:16px/1.5 Arial,Helvetica,sans-serif}.account-menu[hidden]{display:none}.account-menu a{display:block;padding:10px 12px;border-radius:3px;text-decoration:none}.account-menu a:hover,.account-menu a:focus-visible{background:#f2edf5}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:var(--white);font:17px/1.6 var(--sans);min-height:100vh;display:flex;flex-direction:column}main{flex:1}a{color:var(--purple);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:16px/1.5 var(--sans)}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #895bab;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);color:var(--purple);line-height:1.12}h1{font-size:clamp(38px,4vw,60px);margin-bottom:12px}h2{font-size:clamp(30px,3.25vw,48px);margin-bottom:12px}h3{font-size:26px;margin-bottom:10px}p{margin-bottom:20px}address{font-style:normal}svg{width:24px;height:24px;flex-shrink:0}.wrap{max-width:1400px;width:calc(100% - 120px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line)}.header-inner{max-width:1400px;width:calc(100% - 120px);min-height:110px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:24px;text-decoration:none;flex-shrink:0}.brand img{object-fit:contain;width:92px;height:92px}.brand strong{font:700 52px/1 var(--serif);display:block;letter-spacing:-1px}.brand span span{font:22px/1.6 var(--serif);color:var(--muted);display:block}.site-header nav{display:flex;align-items:center;gap:36px;font:19px/1.5 var(--serif)}.site-header nav>a{text-decoration:none;white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--purple);color:#fff;border:1px solid var(--purple);border-radius:3px;padding:14px 30px;font:18px/1.35 var(--sans);text-decoration:none;cursor:pointer;min-height:48px}.button:hover{background:#37114e;color:white}.button.secondary{background:white;color:var(--purple)}.button.secondary:hover{background:#f5f0f8}.button.small{font-size:16px;padding:11px 22px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:60px;padding:24px 0 36px;min-height:475px}.hero h1{font-size:clamp(58px,7.5vw,112px);line-height:.95;letter-spacing:-4px;margin:20px 0}.hero p{font:clamp(23px,2.6vw,40px)/1.35 var(--serif);color:var(--muted);margin-bottom:24px}.hero img{width:100%;height:auto;max-height:430px;object-fit:contain}.actions{display:flex;gap:26px;flex-wrap:wrap}.hero .button{font-family:var(--serif);font-size:22px}.section{padding:46px 0 48px;border-top:1px solid var(--line)}.directory{border-top:3px solid #cccbd4;padding-top:28px}.section.first{border:0;padding-top:52px;min-height:60vh}.lead{font:30px/1.4 var(--serif);color:var(--muted)}.small-lead{font-size:23px}.council-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;grid-template-rows:repeat(5,auto);column-gap:56px;margin-top:30px}.council-row{display:grid;grid-template-columns:50px 1.5fr 1fr 20px;align-items:center;gap:16px;padding:13px 10px;border-top:1px solid var(--line);text-decoration:none;font:21px/1.2 var(--serif);color:var(--ink);min-height:54px}.council-row:last-child,.council-row:nth-child(5){border-bottom:1px solid var(--line)}.council-row:hover{background:#faf7fc}.council-row .number{color:var(--purple);font-weight:bold}.council-row .city{font-size:18px;color:var(--muted)}.council-row svg{color:var(--purple);width:20px}.empty{border:1px solid var(--line);border-radius:4px;text-align:center;padding:56px 24px;margin-top:28px}.empty>svg{width:60px;height:60px;color:#8b8798;margin-bottom:18px}.empty p{font-size:21px;margin-bottom:10px}.empty small{font-size:16px;color:var(--muted)}.empty .button{margin-top:12px}.term-picker,.term-loader{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:22px 0}.term-picker select,.term-loader select{width:auto;min-width:220px}.officer-profiles{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:30px 0}.officer{display:flex;gap:24px;border-top:1px solid var(--line);padding-top:24px;min-width:0}.officer>div{min-width:0;overflow-wrap:anywhere}.officer .office{font-size:14px;color:var(--purple);margin:0 0 6px}.officer p{font-size:16px}.portrait{width:120px;height:140px;object-fit:cover;border-radius:3px;flex-shrink:0}.officer-list{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.calendar-frame,.donation-frame{display:block;width:100%;height:680px;border:1px solid var(--line);border-radius:4px;margin:30px 0 12px}.donation-frame{height:950px}.site-footer{background:var(--purple);color:white;text-align:center;padding:16px 30px;margin-top:20px}.site-footer p{margin:0;font-size:16px}.site-footer a{color:white}.profile{padding-top:30px}.back{display:inline-block;margin-bottom:20px}.details{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:32px}.details section{border-top:1px solid var(--line);padding-top:20px}.details h2{font-size:32px}.details p{margin-bottom:8px}.source,.muted{color:var(--muted);font-size:14px}.source{margin:28px 0}.profile .section h2{font-size:36px}.profile .empty{border:0;padding:24px}.profile .section{padding:28px 0}.description{max-width:850px}.login-wrap{padding:64px 24px}.login{width:min(100%,500px);margin:auto}.login h1{font-size:44px}.login form{margin-top:28px}.login label{margin-top:18px}.login .button{width:100%}label{display:block;font-size:15px;font-weight:600;margin-bottom:6px}input:not([type=checkbox]),select,textarea{width:100%;padding:10px 12px;border:1px solid #c7c4d1;border-radius:3px;background:white;color:var(--ink);min-height:44px}textarea{resize:vertical}.check{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:400;margin:18px 0}.check input{accent-color:var(--purple);width:20px;height:20px;flex-shrink:0}.toggle{padding:14px;background:var(--soft);border:1px solid var(--line);border-radius:4px}.toggle input{width:36px;height:22px}.portal{display:grid;grid-template-columns:230px minmax(0,1fr)}.portal aside{background:var(--soft);border-right:1px solid var(--line);padding:26px 0}.portal aside nav{position:sticky;top:20px}.portal aside a{display:block;padding:14px 28px;color:var(--ink);text-decoration:none}.portal aside a.active{background:var(--purple);color:white}.portal aside a:hover{box-shadow:inset 4px 0 #9b7caf}.portal-content{padding:32px 44px 60px;max-width:1280px;width:100%}.portal h1{font-size:44px}.portal h2{font-size:32px}.portal-content>p{color:var(--muted)}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px}.field{margin-bottom:16px}.form-grid .field{margin:0}.full{grid-column:1/-1}.form-section{border-top:1px solid var(--line);padding:28px 0;margin-top:30px}.form-actions{border-top:1px solid var(--line);display:flex;gap:16px;padding-top:24px;margin-top:28px}.roster-row{border:1px solid var(--line);border-radius:3px;padding:16px;margin:24px 0}.roster-row legend{font-size:14px;color:var(--muted);padding:0 8px}.roster-row .form-grid{grid-template-columns:repeat(4,1fr);gap:16px}.roster-row .full{grid-column:1/-1}.text-button{color:var(--purple);background:none;border:0;padding:4px 0;text-decoration:underline;cursor:pointer;margin-top:10px;font-size:14px}.photo-preview{width:70px;height:70px;object-fit:cover;margin-right:16px}.photo-field input[type=file]{margin-top:8px}.notice{padding:14px 18px;border:1px solid #b4892a;background:#fffaf0;border-radius:3px}.notice.success{border-color:#649174;background:#f4faf5}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;margin:26px 0;font-size:16px;text-align:left}th{background:#f1f0f5;color:var(--ink);font-weight:600}td,th{padding:16px;border-bottom:1px solid var(--line)}.overview-list>a{display:flex;justify-content:space-between;align-items:center;gap:20px;text-decoration:none;border-top:1px solid var(--line);padding:24px 0}.overview-list h2{font-size:29px;margin-bottom:8px}.overview-list p{color:var(--muted);margin:0}.danger{background:#932f37;border-color:#932f37}.sr-only,.skip{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip:focus{position:fixed;clip:auto;width:auto;height:auto;margin:0;top:8px;left:8px;padding:12px;background:white;z-index:99}
@media(min-width:1600px){.hero{min-height:500px}.hero img{max-height:460px}}
@media(max-width:1200px){.wrap,.header-inner{width:calc(100% - 64px)}.brand{gap:12px}.brand strong{font-size:38px}.brand span span{font-size:17px}.brand img{width:68px;height:68px}.site-header nav{gap:20px;font-size:17px}.hero{gap:24px}.hero h1{font-size:80px}.hero .button{font-size:19px;padding:13px 20px}.council-grid{column-gap:24px}.council-row{grid-template-columns:34px 1.4fr 1fr 16px;gap:10px;font-size:18px}.council-row .city{font-size:16px}.portal{grid-template-columns:190px minmax(0,1fr)}.portal-content{padding:30px}.roster-row .form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.header-inner{flex-wrap:wrap;padding:14px 0;gap:14px;justify-content:center}.site-header nav{justify-content:center;flex-wrap:wrap;gap:12px 24px}.brand strong{font-size:36px}.brand img{width:62px;height:62px}.hero h1{font-size:64px;letter-spacing:-2px}.hero p{font-size:25px}.hero .actions{gap:12px}.hero .button{font-size:17px}.council-grid{display:block}.council-row{grid-template-columns:40px 1.5fr 1fr 20px;padding:16px 8px}.council-row:nth-child(5){border-bottom:0}.officer-profiles{grid-template-columns:1fr}.officer-list{grid-template-columns:1fr 1fr}.portal{display:block}.portal aside{border-right:0;border-bottom:1px solid var(--line);padding:8px 20px}.portal aside nav{display:flex;flex-wrap:wrap;position:static}.portal aside a{padding:10px 14px;font-size:14px}.portal-content{padding:28px}.site-footer{font-size:14px}.form-grid{gap:18px}.hero img{max-height:320px}}
@media(max-width:600px){.wrap,.header-inner{width:calc(100% - 36px)}.brand strong{font-size:34px}.brand span span{font-size:16px}.site-header nav{font:15px var(--sans);gap:12px 18px}.site-header nav .button{font-size:14px;padding:9px 14px;min-height:40px}.hero{grid-template-columns:1fr;gap:8px;text-align:center;padding:30px 0;min-height:0}.hero h1{font-size:62px;margin:12px 0 18px}.hero p{font-size:24px}.hero .actions{justify-content:center}.hero img{width:210px;max-height:210px;margin:18px auto 0}.section{padding:32px 0}.directory h2{font-size:36px}.small-lead{font-size:20px}.council-row{font-size:17px;grid-template-columns:34px 1fr 18px;gap:8px}.council-row .city{grid-column:2;grid-row:auto;font-size:14px}.council-row svg{grid-column:3;grid-row:1/3}.council-row .number{grid-row:1/3}.empty{padding:32px 16px}.empty p{font-size:18px}.details{grid-template-columns:1fr;gap:24px}.profile h1{font-size:38px}.lead{font-size:24px}.officer-list{grid-template-columns:1fr}.officer{gap:16px}.portrait{width:86px;height:110px}.term-picker,.term-loader{gap:8px}.term-picker select,.term-loader select{min-width:0;flex:1}.calendar-frame{height:620px}.site-footer{padding:26px 20px}.site-footer p{font-size:14px}.portal-content{padding:26px 18px}.portal h1{font-size:36px}.portal h2{font-size:28px}.form-grid,.roster-row .form-grid{grid-template-columns:1fr}.heading-row{align-items:flex-start;flex-direction:column}.form-actions{flex-wrap:wrap}.login-wrap{padding:40px 20px}.button{padding:12px 22px;font-size:16px}.roster-row{padding:12px}.officer-profiles{gap:20px}.site-header .brand{gap:10px}.donation-frame{height:1050px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.portal aside a{display:flex;align-items:center;gap:12px}.portal aside a svg{width:20px;height:20px;flex-shrink:0}
.dashboard-section{margin-top:32px}.dashboard-section h2{font-size:27px}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.metric-tile{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:16px;text-decoration:none;color:var(--ink);background:#fff}
.metric-tile:hover{border-color:var(--purple);background:#fcfaff}.metric-tile h3{font:600 15px/1.4 var(--sans);margin:0 0 10px;overflow-wrap:anywhere}.metric-value{font:600 30px/1.2 var(--sans);color:var(--purple)}.metric-tile span{font-size:14px;margin-top:4px}.metric-tile small{font-size:12px;color:var(--muted);margin-top:8px}
.brand strong{overflow-wrap:anywhere}.brand>span{min-width:0}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.metric-grid{grid-template-columns:1fr}}
