@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');
:root{--navy:#304d73;--deep:#203650;--sage:#849d80;--mist:#eaf2f1;--sky:#a5c7d1;--gold:#e5b459;--coral:#de8979;--cream:#fbfaf6;--ink:#233348;--muted:#637284;--line:#e3e9e8;--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.7 'DM Sans',Arial,sans-serif;background:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1140px,calc(100% - 44px));margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:99;background:#fff;padding:10px}.topline{height:7px;background:linear-gradient(90deg,var(--navy) 0 28%,var(--sky) 28% 47%,var(--gold) 47% 64%,var(--coral) 64% 78%,var(--sage) 78%)}header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;backdrop-filter:blur(15px)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:88px}.brand{display:flex;align-items:center;gap:12px;min-width:210px}.brand img{width:72px;height:72px;object-fit:contain}.brand-label{font-family:'Libre Baskerville',Georgia,serif;color:var(--navy);font-size:16px;line-height:1.35}.brand-label small{font:600 10px 'DM Sans',sans-serif;letter-spacing:.19em;color:var(--sage);display:block;margin-top:5px}nav{display:flex;align-items:center;gap:19px}nav a{font-size:13px;font-weight:700;color:#526478}nav a:hover,nav a[aria-current=page]{color:var(--navy)}.nav-cta,.button{display:inline-flex;align-items:center;justify-content:center;background:var(--navy);color:white!important;padding:13px 21px;border-radius:999px;font-weight:700;font-size:14px;transition:transform .2s,background .2s}.button:hover,.nav-cta:hover{transform:translateY(-2px);background:var(--deep)}.button.alt{background:white;color:var(--navy)!important;border:1px solid #d5e0e3}.button.sage{background:var(--sage)}.menu{display:none;border:1px solid var(--line);background:white;padding:8px 12px;border-radius:8px;font-size:18px}.hero{background:radial-gradient(circle at 85% 15%,#dceae5 0,transparent 33%),linear-gradient(120deg,#f5f9f8,#fff9f1);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:52px;min-height:615px;padding:60px 0}.eyebrow{text-transform:uppercase;letter-spacing:.21em;color:var(--sage);font-size:12px;font-weight:700}.hero h1,.pagehero h1{font:400 clamp(39px,4.6vw,64px)/1.16 'Libre Baskerville',Georgia,serif;color:var(--deep);letter-spacing:-.04em;margin:17px 0 22px}.hero h1 em{color:var(--sage);font-style:normal}.lead{font-size:18px;color:#57687a;max-width:620px;line-height:1.8}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;min-height:455px}.art-halo{position:absolute;width:440px;height:440px;max-width:100%;border-radius:50%;background:linear-gradient(145deg,#e0eced,#f5e9d6);box-shadow:0 30px 65px #34547319}.logo-frame{position:relative;width:min(365px,90%);border-radius:35px;background:#fff;padding:22px;box-shadow:0 24px 80px #20365020;transform:rotate(-2deg)}.logo-frame img{width:100%}.floating{position:absolute;right:0;bottom:28px;background:white;border:1px solid var(--line);box-shadow:0 12px 40px #20365018;border-radius:18px;padding:13px 20px;color:var(--navy);font-weight:700;font-size:13px}.section{padding:88px 0}.section.soft{background:var(--cream)}.section.mist{background:#f0f6f4}.section h2,.cta h2{font:400 clamp(30px,3.3vw,44px)/1.25 'Libre Baskerville',Georgia,serif;color:var(--deep);letter-spacing:-.025em;margin:10px 0 15px}.intro{max-width:740px;color:var(--muted);font-size:17px;margin:0 0 35px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:0 8px 35px #20365009}.card h3{font:400 22px/1.35 'Libre Baskerville',Georgia,serif;color:var(--deep);margin:18px 0 10px}.card p{color:var(--muted);margin:0}.iconbox{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:24px;background:#e8f1ef}.card:nth-child(2) .iconbox{background:#f9edd6}.card:nth-child(3) .iconbox{background:#f8e6e0}.textlink{display:inline-block;color:var(--navy);font-weight:700;margin-top:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.feature{background:linear-gradient(145deg,#dce9e6,#e8eef3);border-radius:30px;padding:35px;min-height:340px;display:grid;place-items:center}.feature img{width:min(300px,100%);background:#fff;border-radius:25px;padding:20px;box-shadow:0 18px 40px #20365012}.checks{list-style:none;padding:0}.checks li{margin:12px 0;padding-left:32px;position:relative}.checks li:before{content:'✓';position:absolute;left:0;color:var(--sage);font-weight:800}.cta{background:var(--deep);color:white;padding:64px 0}.cta .container{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{color:#fff;margin:0 0 10px}.cta p{color:#dce5ed;margin:0}.pagehero{background:linear-gradient(120deg,#edf4f2,#fdf9f2);padding:75px 0 70px}.pagehero h1{font-size:clamp(38px,4vw,55px);max-width:900px}.pagehero p{max-width:760px;color:var(--muted);font-size:18px}.steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.step{border-left:3px solid var(--sage);padding:10px 25px}.step:before{counter-increment:step;content:'0' counter(step);font-weight:700;color:var(--coral);letter-spacing:.1em}.step h3{color:var(--deep)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.location{padding:35px;border:1px solid var(--line);border-radius:var(--radius);background:white}.location .city{font:400 29px 'Libre Baskerville',Georgia,serif;color:var(--navy)}.notice{background:#fff8e9;border-left:4px solid var(--gold);padding:20px 24px;border-radius:8px;color:#5c594e}.contact-card{max-width:780px;border:1px solid var(--line);padding:35px;border-radius:var(--radius);background:white}.contact-card p{color:var(--muted)}footer{background:#f8faf9;border-top:1px solid var(--line);padding:50px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px}.footer-brand{max-width:350px}.footer-brand img{width:135px}.footer-grid h4{margin:0 0 12px;color:var(--deep)}.footer-grid a{display:block;color:#586b7c;font-size:14px;margin:6px 0}.footer-bottom{border-top:1px solid var(--line);padding-top:18px;margin-top:30px;color:#74818e;font-size:12px}.small{font-size:13px;color:var(--muted)}@media(max-width:950px){nav{display:none;position:absolute;top:95px;left:0;right:0;background:white;padding:22px;box-shadow:0 20px 30px #0001;flex-direction:column;align-items:stretch}nav.open{display:flex}.menu{display:block}.hero-grid,.split{grid-template-columns:1fr}.hero-grid{padding:50px 0}.hero-art{min-height:370px}.cards,.steps{grid-template-columns:1fr 1fr}}@media(max-width:640px){.container{width:min(100% - 32px,1140px)}.header-inner{min-height:75px}.brand img{width:56px;height:56px}.brand-label{font-size:13px}.hero-grid{gap:10px}.hero-art{min-height:310px}.art-halo{width:290px;height:290px}.logo-frame{width:245px}.floating{right:4px;bottom:8px;font-size:11px}.section{padding:60px 0}.cards,.steps,.location-grid,.footer-grid{grid-template-columns:1fr}.cta .container{display:block}.cta .button{margin-top:25px}.pagehero{padding:52px 0}}

/* Employment application */
.career-intro{max-width:790px;margin-bottom:2rem}.career-form{background:#fff;border:1px solid #dbe6e3;border-radius:22px;padding:clamp(18px,4vw,42px);box-shadow:0 12px 40px rgba(32,54,80,.06)}.career-form fieldset{border:0;border-bottom:1px solid #dfe8e6;padding:0 0 28px;margin:0 0 30px;min-width:0}.career-form legend{font-family:Georgia,serif;color:#304d73;font-size:1.5rem;font-weight:700;margin-bottom:18px}.career-form label{display:flex;flex-direction:column;gap:7px;color:#304d73;font-weight:600;font-size:.93rem;margin:0 0 14px}.career-form input,.career-form select,.career-form textarea{width:100%;padding:12px 13px;border:1px solid #b8c9c9;border-radius:9px;background:#fff;color:#243b52;font:inherit;font-weight:400;box-sizing:border-box}.career-form input:focus,.career-form select:focus,.career-form textarea:focus{outline:3px solid #a5c7d1;outline-offset:1px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}.job-entry{background:#f6f9f7;border:1px solid #e1ebe5;border-radius:14px;padding:18px;margin:14px 0}.job-entry h3{margin:0 0 14px;color:#304d73}.check-line{display:flex;align-items:flex-start;gap:12px;margin:18px 0}.check-line input{width:18px;height:18px;flex:none;margin-top:4px}.check-line label{display:block;margin:0;font-weight:400}.form-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.career-form button.button{border:0;cursor:pointer;font:inherit;font-weight:700}.visually-hidden{position:absolute;left:-9999px}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.career-form{padding:18px}}

/* Subtle, accessible motion enhancements */
@media (prefers-reduced-motion: no-preference) {
  .hero-grid > :first-child { animation: tbc-enter .75s cubic-bezier(.2,.7,.2,1) both; }
  .hero-art { animation: tbc-enter .9s .14s cubic-bezier(.2,.7,.2,1) both; }
  .pagehero .container { animation: tbc-enter .65s ease-out both; }
  .card,.location,.feature,.contact-card { transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
  .card:hover,.location:hover { transform: translateY(-5px); box-shadow: 0 18px 42px #20365018; border-color: #c4d8d3; }
  .feature:hover { transform: translateY(-3px); }
  .button,.nav-cta { transition: transform .22s ease, background .22s ease, box-shadow .22s ease; }
  .button:hover,.nav-cta:hover { box-shadow: 0 9px 24px #20365026; }
  .button:active,.nav-cta:active { transform: translateY(0) scale(.98); }
  .js-motion .reveal-ready { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1); }
  .js-motion .reveal-ready.is-visible { opacity: 1; transform: none; }
  @keyframes tbc-enter { from { opacity:0; transform:translateY(19px); } to { opacity:1; transform:translateY(0); } }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button,.nav-cta,.card,.location,.feature { animation:none!important;transition:none!important; } }

/* Homepage logo reveal: a brief, one-time branded entrance. */
@media (prefers-reduced-motion: no-preference) {
  .hero-art .logo-frame { animation: tbc-logo-arrive 1.05s .24s cubic-bezier(.18,.8,.24,1) both; }
  .hero-art .logo-frame img { animation: tbc-logo-focus 1.1s .34s ease-out both; }
  .hero-art .art-halo { animation: tbc-halo-arrive 1.25s .1s ease-out both; }
  .hero-art .floating { animation: tbc-tag-arrive .65s .85s ease-out both; }
  @keyframes tbc-logo-arrive {
    from { opacity:0; transform:translateY(24px) scale(.93) rotate(-5deg); }
    to { opacity:1; transform:translateY(0) scale(1) rotate(-2deg); }
  }
  @keyframes tbc-logo-focus {
    from { opacity:.3; filter:blur(5px); transform:scale(.97); }
    to { opacity:1; filter:blur(0); transform:scale(1); }
  }
  @keyframes tbc-halo-arrive {
    from { opacity:0; transform:scale(.85); }
    to { opacity:1; transform:scale(1); }
  }
  @keyframes tbc-tag-arrive {
    from { opacity:0; transform:translateY(12px); }
    to { opacity:1; transform:translateY(0); }
  }
}

/* Jackson announcement — inherits the site's actual brand tokens and typefaces. */
.availability-overlay[hidden]{display:none!important}
.availability-overlay{position:fixed;inset:0;z-index:10000;background:rgba(32,54,80,.64);display:flex;align-items:center;justify-content:center;padding:20px;animation:availability-shade .25s ease both}
.availability-dialog{position:relative;width:min(100%,530px);max-height:calc(100vh - 40px);overflow:auto;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(26px,5vw,44px);box-shadow:0 22px 65px rgba(32,54,80,.24);text-align:center;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);animation:availability-enter .45s cubic-bezier(.2,.75,.2,1) both}
.availability-dialog::before{content:'';display:block;height:5px;border-radius:999px;background:linear-gradient(90deg,var(--navy),var(--sky),var(--gold),var(--coral),var(--sage));margin:0 35px 25px}
.availability-kicker{font:700 12px/1.5 'DM Sans',Arial,sans-serif;letter-spacing:.21em;text-transform:uppercase;color:var(--sage);margin-bottom:12px}
.availability-dialog h2{font:400 clamp(1.55rem,4.5vw,2.25rem)/1.22 'Libre Baskerville',Georgia,serif;letter-spacing:-.025em;color:var(--deep);margin:0 0 15px}
.availability-highlight{font:700 clamp(1.25rem,4vw,1.65rem)/1.35 'DM Sans',Arial,sans-serif;color:var(--navy);margin:0 0 14px}
.availability-dialog #availability-description{font:400 16px/1.7 'DM Sans',Arial,sans-serif;color:var(--muted);margin:0 0 25px}
.availability-close{position:absolute;right:13px;top:10px;border:0;background:transparent;color:var(--navy);font:400 2rem/1 'DM Sans',Arial,sans-serif;cursor:pointer;padding:6px 11px;border-radius:50%}
.availability-close:hover{background:var(--mist)}
.availability-actions{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap}
.availability-actions .button{background:var(--navy);color:#fff!important;font-family:'DM Sans',Arial,sans-serif}
.availability-actions .button:hover{background:var(--deep)}
.availability-dismiss{border:0;background:transparent;color:var(--navy);text-decoration:underline;cursor:pointer;padding:12px;font:600 14px 'DM Sans',Arial,sans-serif}
.availability-dialog :focus-visible{outline:3px solid var(--sage);outline-offset:3px}
@keyframes availability-shade{from{opacity:0}to{opacity:1}}
@keyframes availability-enter{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.availability-overlay,.availability-dialog{animation:none!important}}

/* Search-friendly Jackson enrollment announcement */
.jackson-banner{background:#e9efe7;border-bottom:1px solid #c5d4c0;color:#304d73;padding:1rem 0}.jackson-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}.jackson-banner strong{display:block;font-family:'Libre Baskerville',Georgia,serif;font-size:1.06rem}.jackson-banner span{display:block;margin-top:.35rem;font-family:'DM Sans',Arial,sans-serif;font-size:.92rem}.jackson-banner .button{font-size:.88rem;white-space:normal;text-align:center}@media(max-width:700px){.jackson-banner-inner{align-items:stretch}.jackson-banner .button{width:100%}}

/* Local SEO content and accessible FAQ components */
.seo-readable{max-width:940px}.seo-readable p{line-height:1.75;max-width:850px}.seo-faq{border-bottom:1px solid #d8e0e4;padding:1rem 0}.seo-faq summary{cursor:pointer;font-weight:700;color:#304d73;font-size:1.1rem}.seo-faq p{padding:.5rem 0 0;margin:0}.seo-faq summary:focus-visible{outline:3px solid #849d80;outline-offset:4px}
