/*
Theme Name: GPA Studio
Author: GPAcalculator
Description: Accessible, lightweight GPA calculators and student guides.
Version: 1.0.5
Requires PHP: 7.4
Text Domain: gpa-studio
*/
:root{--ink:#292447;--muted:#625e73;--cream:#fbfaf6;--paper:#fff;--lime:#d9f68b;--lav:#eeeafa;--line:#dedbe5;--accent:#6550a5;--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,summary,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.55}.wrap{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip{position:fixed;top:-90px;left:20px;padding:12px;background:var(--ink);color:white;z-index:100}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:30;background:rgba(251,250,246,.98);border-bottom:1px solid var(--line)}.admin-bar .site-header{top:32px}.nav-wrap{display:flex;align-items:center;gap:24px;min-height:96px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:24px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand-icon{background:var(--ink);color:var(--lime);border-radius:14px;display:grid;place-items:center;width:48px;height:48px;font-size:33px;position:relative;letter-spacing:-3px}.brand-icon>span{font-size:19px;margin-left:1px}.brand-light{font-weight:450}.brand small{display:block;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;font-weight:600;margin-top:-3px}.nav-list,.nav-list ul{padding:0;margin:0;list-style:none}.nav-list{display:flex;align-items:center;gap:24px}.nav-list>li{position:relative}.nav-list a{text-decoration:none;font-size:14px;font-weight:650;display:block;padding:22px 0}.nav-list a:hover,.nav-list .current-menu-item>a{color:var(--accent)}.nav-list .sub-menu{position:absolute;top:100%;left:-22px;background:white;border:1px solid var(--line);box-shadow:0 20px 45px #29244715;border-radius:18px;min-width:255px;padding:10px;visibility:hidden;opacity:0;transform:translateY(7px);transition:.18s}.nav-list .sub-menu a{padding:11px 14px;border-radius:9px;font-size:13px}.nav-list .sub-menu a:hover{background:var(--lav)}.nav-list li:hover>.sub-menu,.nav-list li:focus-within>.sub-menu,.nav-list li.is-open>.sub-menu{visibility:visible;opacity:1;transform:none}.sub-toggle{border:0;background:transparent;padding:4px;color:var(--ink);margin-left:4px}.nav-list>li>a{display:inline-block}.nav-cta{margin-left:auto;background:var(--ink);color:white;border-radius:30px;padding:12px 21px;text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap}.nav-cta:hover{background:var(--accent)}.menu-toggle{display:none}.hero{padding:65px 0 34px;background:radial-gradient(ellipse at 90% 20%,#e5def7 0,transparent 47%),var(--cream)}.hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:65px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;text-transform:uppercase;color:var(--accent)}h1,h2,h3,h4{line-height:1.14;letter-spacing:-.04em;margin:0 0 20px}h1{font-size:clamp(38px,5.5vw,70px);font-weight:780}h1 em{font-style:normal;color:var(--accent)}.hero h1{margin-top:17px}.hero p{font-size:18px;color:var(--muted);max-width:580px}.hero .actions{margin-top:27px}.btn{border:1px solid var(--ink);background:var(--ink);color:white;padding:13px 23px;border-radius:100px;display:inline-flex;gap:20px;align-items:center;justify-content:center;text-decoration:none;font-weight:650;font-size:14px;min-height:48px;transition:transform .18s,background .18s}.btn:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.btn.secondary{background:transparent;color:var(--ink);border-color:#bcb5cb}.btn.secondary:hover{background:var(--lav)}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.hero-checks{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px;font-size:12px;color:var(--muted)}.hero-checks span:before{content:'✓';margin-right:6px;color:var(--accent);font-weight:800}.hero-art{position:relative;background:#e8e2f6;padding:32px;border-radius:38px 100px 38px 38px;transform:rotate(-2deg)}.art-card{background:white;padding:27px;border-radius:24px;box-shadow:0 20px 50px #29244713;transform:rotate(2deg)}.art-card .tiny{font-size:11px;letter-spacing:2px;font-weight:750}.art-score{font-size:80px;line-height:1.25;letter-spacing:-6px;font-weight:800}.art-score span{font-size:20px;letter-spacing:0;color:var(--muted);font-weight:500}.art-bars{display:flex;align-items:end;gap:9px;height:90px;margin:15px 0}.art-bars i{display:block;width:22%;border-radius:9px 9px 0 0;background:#b4a1db}.art-bars i:nth-child(1){height:50%}.art-bars i:nth-child(2){height:75%}.art-bars i:nth-child(3){height:63%}.art-bars i:nth-child(4){height:100%;background:var(--ink)}.art-bottom{font-size:12px;border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between}.art-tag{position:absolute;bottom:9px;right:-15px;background:var(--lime);padding:10px 18px;border-radius:10px;transform:rotate(5deg);font-size:12px;font-weight:750}.hero-art .art-caption{font-size:10px;color:var(--muted);margin:12px 0 0;text-align:center}.quick-strip{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);margin-top:55px;padding-top:24px;font-size:12px;color:var(--muted)}.section{padding:65px 0}.section.soft{background:var(--lav)}.section-heading{display:flex;justify-content:space-between;gap:25px;align-items:end;margin-bottom:30px}.section-heading h2,.prose h2{font-size:clamp(27px,3vw,39px)}.section-heading p{max-width:410px;color:var(--muted);margin:0}.calculator{background:white;border:1px solid var(--line);border-radius:28px;padding:30px;margin:28px 0 45px;box-shadow:0 16px 50px #29244707;scroll-margin-top:115px}.calc-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.calc-top h2{font-size:30px;margin:7px 0 23px}.local-badge{background:var(--cream);padding:7px 12px;border-radius:100px;font-size:11px;font-weight:650}.calc-tabs{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:23px;border-bottom:1px solid var(--line);margin-bottom:26px}.calc-tabs button{background:transparent;border:1px solid var(--line);border-radius:30px;padding:9px 14px;font-size:12px;font-weight:650;color:var(--ink);min-height:40px}.calc-tabs button[aria-pressed=true]{background:var(--lav);border-color:var(--accent);color:var(--ink)}.calc-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(230px,1fr);gap:25px}.calc-form{min-width:0}.calc-form h3{font-size:23px;margin:0 0 8px}.calc-form p{font-size:13px;color:var(--muted);margin:0 0 18px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.field{display:flex;flex-direction:column;gap:6px}.field>label,.course-head{font-size:11px;font-weight:700;color:var(--muted)}input,select,textarea{border:1px solid #c9c3d4;border-radius:10px;padding:11px 10px;min-height:45px;width:100%;max-width:100%;color:var(--ink);background:white}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.course-head,.course-row{display:grid;grid-template-columns:1.4fr .7fr .85fr .85fr 34px;gap:8px;align-items:center}.course-head{margin-top:22px}.course-row{margin-top:9px}.course-row input,.course-row select{font-size:13px;padding:10px 7px}.course-row .bonus{min-width:0}.remove-row{border:0;background:var(--cream);border-radius:9px;color:var(--ink);min-width:34px;min-height:42px;font-size:21px}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:10px 0;color:var(--accent);font-weight:650;font-size:12px}.add-row{margin:12px 0}.result-box{background:var(--ink);color:white;border-radius:20px;padding:27px;display:flex;flex-direction:column;align-items:flex-start;align-self:start;min-height:355px}.result-box .eyebrow{color:var(--lime)}.result-orbit{width:76px;height:76px;border:1px solid #827694;border-radius:50%;display:grid;place-items:center;color:var(--lime);font-size:28px;margin:25px 0 17px}.result-value{font-size:30px;letter-spacing:-1px;font-weight:750;line-height:1.2;margin-bottom:18px}.result-detail{font-size:13px;line-height:1.8;color:#e3dff0;overflow-wrap:anywhere}.result-detail strong{color:var(--lime)}.result-note{border-top:1px solid #655c7b;margin-top:25px;padding-top:16px;font-size:11px;color:#ccc5dd}.result-box .small-btn{margin-top:15px;background:#423a5d;color:white;border-color:#817491}.small-btn{font-size:11px;min-height:40px;border:1px solid #c9c3d4;border-radius:9px;padding:8px 11px;color:var(--ink);background:white}.save-panel{border-top:1px solid var(--line);margin-top:25px;padding-top:17px}.save-panel summary{font-size:12px;cursor:pointer;font-weight:650}.save-panel p{margin-top:12px;font-size:12px}.save-status{font-size:12px;margin-top:10px!important}.tool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.tool-card{background:white;border:1px solid var(--line);border-radius:20px;padding:23px;text-decoration:none;transition:.2s}.tool-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 14px 30px #2924470b}.tool-card h3{font-size:21px;margin-top:25px}.tool-card p{font-size:13px;color:var(--muted);margin:0}.tool-number{display:flex;justify-content:space-between;color:var(--accent);font-size:11px;font-weight:700}.tool-card:last-child{background:var(--lime)}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.guide-card{background:white;border:1px solid var(--line);padding:28px;border-radius:20px}.guide-card h3,.guide-card h2{font-size:22px;margin-top:18px}.guide-card a{text-decoration:none}.guide-card a:hover{color:var(--accent)}.guide-card p{font-size:14px;color:var(--muted)}.article-hero{background:radial-gradient(ellipse at 90% 70%,#e6def7,transparent 50%),var(--cream);border-bottom:1px solid var(--line);padding:34px 0 50px}.article-hero h1{max-width:900px;font-size:clamp(34px,4.5vw,58px);margin-top:18px}.article-hero p{font-size:18px;color:var(--muted);max-width:770px}.crumb{font-size:11px;color:var(--muted);margin-bottom:35px}.byline{font-size:11px;color:var(--muted);margin-top:22px}.page-content{padding-block:35px 75px}.prose{max-width:1000px}.prose h2{margin-top:48px}.prose h3{font-size:23px;margin-top:30px}.prose p,.prose li{color:#4e4a60}.prose p{margin:17px 0}.prose a{color:#57408f}.prose .calculator{margin-top:0}.prose .calculator h2,.prose .calculator h3{margin-top:0}.prose .result-box{color:white}.prose .calculator .result-detail{color:#e3dff0}.prose .calc-form p{font-size:13px}.table-scroll{overflow:auto;margin:25px 0;border:1px solid var(--line);border-radius:15px}table{width:100%;border-collapse:collapse;background:white;font-size:14px}th,td{text-align:left;padding:14px 17px;border-bottom:1px solid var(--line)}th{background:var(--lav);color:var(--ink);font-size:12px}tr:last-child td{border-bottom:0}.formula{background:var(--ink);color:var(--lime);padding:24px 27px;border-radius:17px;font-size:19px;margin:26px 0;overflow-wrap:anywhere}.callout{background:var(--lav);padding:22px 25px;border-left:4px solid var(--accent);border-radius:0 14px 14px 0;margin:25px 0!important}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.step{padding:25px;border:1px solid var(--line);border-radius:18px;background:white}.step b{font-size:12px;color:var(--accent)}.step h3{font-size:23px;margin-top:15px}.step p{font-size:14px;color:var(--muted)}.toc{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;margin:28px 0}.toc strong{display:block;margin-bottom:12px}.toc div{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:13px}.faq details{border-bottom:1px solid var(--line);padding:21px 5px}.faq summary{cursor:pointer;font-size:17px;font-weight:650;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary:after{content:'+';color:var(--accent)}.faq details[open] summary:after{content:'−'}.faq details p{font-size:15px;max-width:850px}.split-content{display:grid;grid-template-columns:1fr 1fr;gap:40px}.source-note{font-size:13px;background:white;border:1px solid var(--line);border-radius:15px;padding:22px;margin-top:35px}.source-note ul{padding-left:20px}.small{font-size:12px}.site-footer{background:var(--ink);color:white;padding:60px 0 22px}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:65px}.footer-brand{font-size:23px;letter-spacing:-1px}.footer-brand .brand-icon{background:#423a61;width:42px;height:42px;font-size:24px}.footer-top h2{font-size:33px;margin-top:25px}.footer-top h2 span{color:var(--lime)}.footer-top p{font-size:13px;color:#d4cede;max-width:380px}.footer-top h3{font-size:14px;margin-top:10px;letter-spacing:0}.footer-top>div>a:not(.brand){display:block;text-decoration:none;font-size:12px;color:#ded7ee;margin-bottom:13px}.footer-top a:hover{color:var(--lime)}.footer-disclaimer{font-size:11px;color:#d4cede;margin-top:40px;border-top:1px solid #5d5375;padding-top:25px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px;color:#d4cede;margin-top:25px}.footer-bottom ul{display:flex;gap:16px;list-style:none;padding:0;flex-wrap:wrap}.footer-bottom a{text-decoration:none}.feedback{display:grid;gap:12px}.feedback label{font-size:13px;font-weight:650}.feedback .btn{justify-self:start}.hp{position:absolute;left:-10000px}.mobile-label{display:none}.notice-label{font-size:11px;display:block;margin-top:10px;color:var(--muted)}[hidden]{display:none!important}
@media(max-width:1050px){.nav-wrap{gap:20px}.nav-list{gap:15px}.nav-list a{font-size:12px}.nav-cta{display:none}.nav-wrap nav{margin-left:auto}.tool-grid{grid-template-columns:repeat(3,1fr)}.hero-grid{gap:35px}.brand{font-size:22px}.guide-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.wrap{width:calc(100% - 32px)}.admin-bar .site-header{top:46px}.nav-wrap{min-height:78px;flex-wrap:wrap;gap:0}.brand{font-size:21px}.brand-icon{width:40px;height:40px;font-size:27px}.brand small{font-size:8px;letter-spacing:1px}.menu-toggle{display:flex;margin-left:auto;align-items:center;gap:10px;background:transparent;border:1px solid var(--line);border-radius:30px;padding:9px 13px;font-size:12px;color:var(--ink)}#site-nav{display:none;width:100%;margin:0}.site-header.menu-open #site-nav{display:block}.nav-list{display:block;padding:12px 0 20px;max-height:70vh;overflow:auto}.nav-list>li{border-top:1px solid var(--line)}.nav-list a{font-size:14px;padding:13px 10px}.nav-list>li>a{display:inline-block}.sub-toggle{float:right;min-width:44px;min-height:44px;margin-top:2px}.nav-list .sub-menu{position:static;box-shadow:none;display:none;min-width:0;visibility:visible;opacity:1;transform:none;background:var(--lav);border:0;margin-bottom:10px}.nav-list li:hover>.sub-menu{display:none}.nav-list li.is-open>.sub-menu{display:block}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr;gap:30px}.hero h1{font-size:47px;max-width:600px}.hero p{font-size:16px}.hero-art{max-width:400px;margin:10px auto 15px;width:90%;padding:24px}.art-card{padding:23px}.art-score{font-size:62px}.art-bars{height:65px}.quick-strip{margin-top:30px;flex-wrap:wrap;gap:12px}.section{padding:45px 0}.section-heading{display:block}.section-heading p{margin-top:15px}.calc-layout{grid-template-columns:1fr}.calculator{padding:20px 16px;border-radius:21px;margin-top:18px}.calc-top{display:block}.local-badge{display:none}.calc-top h2{font-size:27px}.calc-tabs{gap:6px}.calc-tabs button{font-size:11px;padding:8px 11px}.result-box{min-height:0;padding:24px}.result-orbit{width:50px;height:50px;font-size:20px;margin:17px 0 12px}.result-value{font-size:29px}.result-note{margin-top:17px}.tool-grid{grid-template-columns:repeat(2,1fr)}.tool-card{padding:20px}.tool-card h3{font-size:19px}.steps,.split-content{grid-template-columns:1fr}.guide-grid{grid-template-columns:1fr}.article-hero{padding-bottom:32px}.article-hero h1{font-size:37px}.article-hero p{font-size:16px}.crumb{margin-bottom:24px;overflow-wrap:anywhere}.prose h2{font-size:29px}.footer-top{grid-template-columns:1fr 1fr;gap:25px}.footer-top>div:first-child{grid-column:1/-1}.footer-bottom{display:block}.footer-top h2{font-size:31px}.site-footer{padding-top:40px}.field-grid{gap:12px}.course-head{display:none}.course-row{grid-template-columns:1fr 1fr 1fr 34px;gap:7px;background:var(--cream);padding:12px;border:1px solid var(--line);border-radius:12px;margin-top:12px}.course-row .course-name{grid-column:1/4}.course-row .remove-row{grid-column:4;grid-row:1}.course-row .mobile-label{display:block;font-size:9px;font-weight:650;color:var(--muted);margin-bottom:4px}.course-row .row-field{align-self:end;min-width:0}.course-row input,.course-row select{font-size:12px}.section-heading h2{font-size:30px}.toc div{display:grid;gap:9px}.feedback textarea{width:100%}.hero-checks{font-size:11px;gap:10px}.page-content{padding-bottom:45px}}
@media(max-width:400px){.hero h1{font-size:40px}.tool-grid{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}.course-row{padding:9px;gap:5px}.course-row select{padding-inline:3px}.brand{font-size:19px}.brand-icon{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
@media print{.site-header,.site-footer,.save-panel,.actions,.calc-tabs,.remove-row,.add-row{display:none!important}.calculator,.result-box{box-shadow:none;border:1px solid #aaa;color:black;background:white}.result-detail,.result-note{color:black!important}.hero-art{display:none}.wrap{width:100%}.page-content{padding:0}.result-box{break-inside:avoid}}

/* Keep the small brand arrow inside its logo tile. */
.brand-icon{display:flex;align-items:center;justify-content:center}.brand-icon>span{position:absolute;right:3px;top:1px;font-size:13px;margin:0;line-height:1}
/* Give policy references separate, comfortable tap targets. */
.source-note li{margin-block:5px}.source-note li a{display:inline-block;padding-block:7px;min-height:38px}

/* Readable footer navigation, including every calculator. */
.footer-top>div>a:not(.brand){font-size:14px;line-height:1.5;padding-block:6px;margin-bottom:3px}
.footer-top p,.footer-disclaimer{font-size:13px;line-height:1.75}
.footer-bottom{font-size:12px;line-height:1.7}
.footer-bottom a{display:inline-block;padding-block:8px}
.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid #5d5375}
.footer-actions .btn{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.footer-actions .btn:hover{background:white;border-color:white}
.footer-return{font-size:13px;color:#eeeafa;padding:10px 0;text-decoration:none}
.site-footer a:focus-visible{outline-color:var(--lime)}
.footer-disclaimer{margin-top:25px}
@media(max-width:480px){.footer-top{grid-template-columns:1fr}.footer-top>div:first-child{grid-column:auto}.footer-actions{align-items:flex-start;flex-direction:column}.footer-bottom ul{gap:6px 16px}}

/* Clear pointer, keyboard and touch feedback for every footer link. */
.site-footer a{cursor:pointer;transition:color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease;text-decoration-thickness:2px;text-underline-offset:5px;border-radius:8px}
.footer-top>div>a:not(.brand){padding:8px 10px;margin-left:-10px;margin-right:0}
.footer-bottom a{padding:8px 9px}
.footer-return{padding:10px 12px}
.site-footer a:hover,.site-footer a:focus-visible{color:var(--lime);background-color:#ffffff12;text-decoration:underline;box-shadow:inset 3px 0 0 var(--lime)}
.site-footer a:active{color:var(--ink);background-color:var(--lime);transform:translateY(1px);text-decoration:underline}
.site-footer .brand:hover,.site-footer .brand:focus-visible{background-color:#ffffff12;box-shadow:0 0 0 8px #ffffff12}
.site-footer .footer-actions .btn:hover,.site-footer .footer-actions .btn:focus-visible{color:var(--ink);background:white;box-shadow:0 5px 18px #0003;text-decoration:underline;transform:translateY(-2px)}
.site-footer .footer-actions .btn:active{transform:translateY(1px);background:var(--lime)}
@media(prefers-reduced-motion:reduce){.site-footer a{transition:none}.site-footer a:active,.site-footer .footer-actions .btn:hover,.site-footer .footer-actions .btn:focus-visible{transform:none}}

.site-footer .footer-top a:hover,.site-footer .footer-top a:focus-visible,.site-footer .footer-bottom a:hover,.site-footer .footer-bottom a:focus-visible{color:var(--lime);background-color:#ffffff12;text-decoration:underline;box-shadow:inset 3px 0 0 var(--lime)}
.site-footer .footer-top a:active,.site-footer .footer-bottom a:active{color:var(--ink);background-color:var(--lime)}

/* Long dropdowns stay within the viewport and scroll independently. */
@media(min-width:781px){
.nav-list .sub-menu{max-height:min(460px,calc(100vh - 130px));max-height:min(460px,calc(100dvh - 130px));overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--accent) var(--lav)}
.admin-bar .nav-list .sub-menu{max-height:min(460px,calc(100vh - 162px));max-height:min(460px,calc(100dvh - 162px))}
.nav-list .sub-menu::-webkit-scrollbar{width:10px}
.nav-list .sub-menu::-webkit-scrollbar-track{background:var(--lav);border-radius:12px}
.nav-list .sub-menu::-webkit-scrollbar-thumb{background:var(--accent);border:2px solid var(--lav);border-radius:12px}
}
@media(max-width:780px){.nav-list{-webkit-overflow-scrolling:touch;scrollbar-width:auto;scrollbar-color:var(--accent) var(--lav)}}
