/* GGCS Visitor: single Midnight Blue public theme. */



html[data-visitor-design=midnight] body.visitor-theme-public{--blue:#d3e4ff;--ink:#edf2ff;--soft:#d5e1f3;--border:#6884ac;--bg:#1d305c;--vt-panel:#263f70f5;--vt-card:#2e4b7e;--vt-tint:#38598e;--vt-accent:#e3c887;--vt-glow:#325c97;--vt-shadow:0 26px 80px #00000035;--vt-bg:radial-gradient(ellipse at 95% 0%,#426db6aa,transparent 60%),radial-gradient(ellipse at 0% 90%,#355b9b99,transparent 65%),#1d305c}
html:root body.visitor-theme-public{background:var(--vt-bg);color:var(--ink);min-height:100svh;position:relative;isolation:isolate}
html:root .visitor-theme-public .site-header{max-width:1440px;padding:25px 5%;border-color:var(--border)}
html:root .visitor-theme-public .brand{min-width:0;gap:13px}
html:root .visitor-theme-public .brand>span{min-width:0;max-width:310px}
html:root .visitor-theme-public .brand .school-name{font-size:17px;font-weight:600;letter-spacing:-.035em;color:var(--ink);text-wrap:balance}
html:root .visitor-theme-public .brand-logo{width:54px;height:54px;background:transparent;border-radius:0;padding:0}
html[data-visitor-design=midnight] .visitor-theme-public .brand-logo{background:#fffdf7;border-radius:14px;padding:4px}
html:root .visitor-theme-public [data-theme-toggle]{display:none}
html:root .visitor-theme-public .nav-admin,html:root .visitor-theme-public .language-control select{background:var(--vt-panel);border-color:var(--border);color:var(--ink);border-radius:50px;min-height:44px}
html:root .visitor-theme-public .nav-admin{display:inline-flex;align-items:center;gap:14px;padding:10px 18px}
html:root .visitor-theme-public main{max-width:1440px}
html:root .visitor-theme-public .welcome-grid{position:relative;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:7%;padding:85px 0 65px;min-height:540px}
html:root .visitor-theme-public .hero-copy{position:relative;min-width:0;z-index:1}
html:root .visitor-theme-public .hero-copy:before{content:"";display:block;width:52px;height:4px;background:var(--vt-accent);border-radius:8px;margin-bottom:28px}
html:root .visitor-theme-public .hero-copy h1{font-size:clamp(40px,4.4vw,64px);margin-top:0;line-height:1.09;letter-spacing:-.06em;text-wrap:balance}
html:root .visitor-theme-public .hero-copy h1 span{color:var(--blue)}
html:root .visitor-theme-public .hero-copy .lead{max-width:440px;font-size:15px;line-height:1.9;color:var(--soft);margin-top:27px}
html:root .visitor-theme-public .welcome-panel{position:relative;isolation:isolate;background:var(--vt-panel);border:1px solid var(--border);border-radius:28px;overflow:visible;box-shadow:var(--vt-shadow);z-index:1}
html:root .visitor-theme-public .welcome-panel:before{content:"";position:absolute;inset:-17px 17px 17px -17px;border:1px solid var(--border);border-radius:32px;z-index:-1;pointer-events:none}
html:root .visitor-theme-public .panel-body{padding:35px}
html:root .visitor-theme-public .panel-body h2{font-size:24px;letter-spacing:-.045em;margin:0 0 26px;color:var(--ink)}
html:root .visitor-theme-public .choice-card{background:var(--vt-card);border:1px solid var(--border);padding:23px 20px;border-radius:17px;gap:16px;min-height:94px;margin-top:14px;transition:transform .2s,box-shadow .2s,border-color .2s}
html:root .visitor-theme-public .choice-card strong{font-size:16px;letter-spacing:-.02em;color:var(--ink)}
html:root .visitor-theme-public .choice-icon{background:var(--vt-tint);color:var(--blue);width:46px;height:46px;border-radius:14px}
html:root .visitor-theme-public .choice-card b{display:grid;place-items:center;width:32px;height:32px;background:var(--vt-tint);color:var(--blue);border-radius:50%;font-size:18px}
html:root .visitor-theme-public .choice-card:hover{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 10px 24px #182a4610;background:var(--vt-card)}
/* Small decorative artwork, built entirely with CSS. */
html:root .visitor-theme-public .vt-art{position:absolute;right:0;top:0;width:220px;height:220px;pointer-events:none;opacity:.8;z-index:0;overflow:hidden}
html:root .visitor-theme-public .vt-art:before{content:"";position:absolute;width:180px;height:180px;top:-75px;right:-38px;border:1px solid var(--vt-accent);border-radius:50%;box-shadow:0 0 0 20px var(--bg),0 0 0 21px var(--border),0 0 0 42px var(--bg),0 0 0 43px var(--border)}




html[data-visitor-design=midnight] .visitor-theme-public .vt-art{background:radial-gradient(circle at 22% 42%,#e3c887 1px,transparent 2px),radial-gradient(circle at 65% 56%,#e3c887 1.5px,transparent 2.5px),radial-gradient(circle at 45% 25%,#fff 1px,transparent 2px)}
html[data-visitor-design=midnight] .visitor-theme-public .vt-art:before{width:130px;height:130px;top:-45px;right:-15px;border-color:#e3c88799;box-shadow:0 0 50px #abcaff22,0 0 0 22px #abcaff08,0 0 0 45px #abcaff05}
html:root .visitor-theme-public .site-footer{max-width:1440px;margin-top:38px;border-color:var(--border);color:var(--soft);padding-top:20px;padding-bottom:22px}
@media(min-width:1500px){html:root .visitor-theme-public .welcome-grid{padding-top:110px;padding-bottom:100px}}
@media(max-width:1000px){html:root .visitor-theme-public .welcome-grid{gap:5%}html:root .visitor-theme-public .panel-body{padding:26px}html:root .visitor-theme-public .brand>span{max-width:240px}}
@media(max-width:760px){html:root .visitor-theme-public .site-header{padding:20px 5%;row-gap:16px}html:root .visitor-theme-public .brand .school-name{font-size:15px}html:root .visitor-theme-public .brand-logo{width:46px;height:46px}html:root .visitor-theme-public .welcome-grid{grid-template-columns:minmax(0,1fr);padding:42px 0 32px;gap:35px;min-height:0}html:root .visitor-theme-public .hero-copy h1{font-size:clamp(36px,7.5vw,54px)}html:root .visitor-theme-public .hero-copy:before{margin-bottom:20px;width:38px;height:3px}html:root .visitor-theme-public .hero-copy .lead{font-size:14px;margin-top:20px;max-width:510px;line-height:1.8}html:root .visitor-theme-public .welcome-panel{border-radius:23px;margin-left:7px}html:root .visitor-theme-public .welcome-panel:before{inset:-9px 9px 9px -9px;border-radius:26px}html:root .visitor-theme-public .panel-body{padding:24px}html:root .visitor-theme-public .panel-body h2{font-size:22px;margin-bottom:20px}html:root .visitor-theme-public .choice-card{min-height:84px;padding:18px 16px}html:root .visitor-theme-public .vt-art{width:150px;height:150px}html:root .visitor-theme-public .site-footer{margin-top:28px;font-size:10px}}
@media(max-width:440px){html:root .visitor-theme-public .brand>span{max-width:250px}html:root .visitor-theme-public .header-actions{justify-content:flex-end;gap:10px!important}html:root .visitor-theme-public .language-control{margin-right:auto}html:root .visitor-theme-public .brand .school-name{font-size:16px}html:root .visitor-theme-public .choice-card strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){}
@media print{html:root body.visitor-theme-public{background:white;color:#172d49}}
/* Shared public forms: the same saved palette as the homepage. */
body.visitor-theme-public{--vt-button-text:#ffffff}
html[data-visitor-design=midnight] body.visitor-theme-public{--vt-button-text:#101d34}
html:root .visitor-theme-public .form-panel,
html:root .visitor-theme-public .login-card,
html:root .visitor-theme-public .thank-card{background:var(--vt-panel);border:1px solid var(--border);box-shadow:var(--vt-shadow);border-radius:24px;color:var(--ink)}
html:root .visitor-theme-public .form-heading p,
html:root .visitor-theme-public .submit-area p,
html:root .visitor-theme-public .field-help,
html:root .visitor-theme-public .login-card>p,
html:root .visitor-theme-public .login-note,
html:root .visitor-theme-public .lead{color:var(--soft)}
html:root .visitor-theme-public .form-section,
html:root .visitor-theme-public .submit-area,
html:root .visitor-theme-public .login-note{border-color:var(--border)}
html:root .visitor-theme-public input:not([type=checkbox]):not([type=radio]),
html:root .visitor-theme-public select,
html:root .visitor-theme-public textarea{background:var(--vt-card);border-color:var(--border);color:var(--ink)}
html:root .visitor-theme-public input::placeholder,
html:root .visitor-theme-public textarea::placeholder{color:var(--soft);opacity:1}
html:root .visitor-theme-public input:focus,
html:root .visitor-theme-public select:focus,
html:root .visitor-theme-public textarea:focus{border-color:var(--blue);outline:2px solid var(--blue);outline-offset:2px}
html:root .visitor-theme-public input:disabled,
html:root .visitor-theme-public select:disabled,
html:root .visitor-theme-public textarea:disabled{background:var(--vt-tint);color:var(--soft)}
html:root .visitor-theme-public input[type=checkbox],
html:root .visitor-theme-public input[type=radio]{accent-color:var(--blue)}
html:root .visitor-theme-public .aside-box,
html:root .visitor-theme-public .receipt,
html:root .visitor-theme-public .tag,
html:root .visitor-theme-public .form-section h3 span{background:var(--vt-tint);color:var(--blue)}
html:root .visitor-theme-public .aside-box p,
html:root .visitor-theme-public .receipt span{color:var(--soft)}
html:root .visitor-theme-public .button-primary{background:var(--blue);color:var(--vt-button-text);border-color:var(--blue)}
html:root .visitor-theme-public .button-primary:hover{filter:brightness(.94)}
html:root .visitor-theme-public .button-secondary,
html:root .visitor-theme-public .google-button{background:var(--vt-card);color:var(--ink);border-color:var(--border)}
html:root .visitor-theme-public .button-secondary:hover,
html:root .visitor-theme-public .google-button:hover{background:var(--vt-tint)}
html:root .visitor-theme-public .notice:not(.error){background:var(--vt-tint);color:var(--ink);border-color:var(--border)}
html:root .visitor-theme-public .story-line{border-color:var(--border);color:var(--soft)}
html:root .visitor-theme-public canvas{max-width:100%}
@media(max-width:760px){html:root .visitor-theme-public .form-panel,html:root .visitor-theme-public .login-card,html:root .visitor-theme-public .thank-card{border-radius:20px}}

html:root .visitor-theme-public .choice-card:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
