.rp-sgt{margin:0;background:#FBFAF8;-webkit-font-smoothing:antialiased;overflow-x:clip;}
  .rp-sgt a{color:#1E6B87;text-decoration:none;}
  .rp-sgt a:hover{color:#002b4e;}
  .rp-sgt summary{list-style:none;}
  .rp-sgt summary::-webkit-details-marker{display:none;}
  .rp-sgt #programs,.rp-sgt #geography,.rp-sgt #safety,.rp-sgt #faq,.rp-sgt #form,.rp-sgt #proof,.rp-sgt #cost,.rp-sgt #team{scroll-margin-top:80px;}
  .rp-sgt #matcher-results,.rp-sgt #matcher-results-heading{scroll-margin-top:96px;}
  .rp-sgt .cta-o:hover{background:#B5570F;}
  .rp-nav .navlink:hover{color:#002b4e;}
  /* The nav is reparented to <body> at runtime, so it sits OUTSIDE .rp-sgt and
     is not covered by its overflow-x:clip. Without these it is the one element
     on the page that can push the horizontal scroll. */
  .rp-nav{max-width:100%;box-sizing:border-box;}
  .rp-nav .nav-inner{min-width:0;}
  .rp-nav .nav-links{min-width:0;}
  .rp-mcta{max-width:100%;box-sizing:border-box;}
  .rp-nav .nav-short{display:none;}
  .rp-nav .nav-full{display:inline;}
  .rp-sgt a:focus-visible,.rp-sgt button:focus-visible,.rp-sgt summary:focus-visible,.rp-sgt input:focus-visible,.rp-sgt select:focus-visible,.rp-sgt textarea:focus-visible{outline:2px solid #CD6414;outline-offset:3px;border-radius:2px;}
  .rp-sgt #safety a:focus-visible,.rp-sgt #rp-hero a:focus-visible,.rp-sgt #bottom-cta a:focus-visible{outline-color:#F0A96A;}
  .rp-sgt .card{transition:border-color .25s ease;}
  .rp-sgt .card:hover{border-color:rgba(0,43,78,.34);}
  .rp-sgt .tcard:hover .tcard-cta{color:#CD6414;}
  .rp-sgt .tcard:hover .tcard-arrow{transform:translateX(5px);}
  .rp-sgt .tcard-arrow{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.3,1);}
  .rp-sgt .tcard-alt{opacity:0;pointer-events:none;transition:opacity .45s ease;}
  .rp-sgt .tcard:hover .tcard-alt{opacity:1;}
  .rp-sgt .chip:hover{border-color:#CD6414;color:#CD6414;}
  .rp-sgt .skip-link:focus{position:fixed !important;left:12px !important;top:12px !important;width:auto !important;height:auto !important;overflow:visible !important;background:#002b4e;color:#fff;font-size:14px;font-weight:700;padding:12px 18px;border-radius:4px;}
  .rp-sgt .dmark::before{content:"+";}
  .rp-sgt details[open] .dmark::before{content:"\2212";}
  .rp-sgt .logos-track{animation:logoscroll 46s linear infinite;}
  @media (prefers-reduced-motion:reduce){.rp-sgt .logos-track{animation:none;}}
  .rp-sgt .logos-track img{height:34px;width:auto;opacity:.72;filter:grayscale(.25);flex:0 0 auto;}
  @keyframes logoscroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
  .rp-sgt .rqf input,.rp-sgt .rqf select,.rp-sgt .rqf textarea{font:inherit;font-size:14.5px;padding:11px 12px;border:1px solid rgba(0,43,78,.22);border-radius:4px;color:#2C3A43;background:#fff;width:100%;box-sizing:border-box;min-width:0;}
  .rp-sgt .rqf textarea{min-height:86px;resize:vertical;}
  .rp-sgt .rqf input:focus,.rp-sgt .rqf select:focus,.rp-sgt .rqf textarea:focus{outline:none;border-color:#CD6414;}
  .rp-sgt .fl{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5C6B75;margin-bottom:5px;}
  .rp-sgt .radio:hover{background:#F6F3ED;}
  @media (max-width:1000px){
    .rp-sgt .hero{grid-template-columns:1fr !important;}
    .rp-sgt .hero > div{max-width:none !important;padding:clamp(24px,5vw,40px) 20px !important;}
    .rp-sgt .hero > figure{order:3;}
    .rp-sgt .hero > figure img{min-height:0 !important;height:auto !important;aspect-ratio:16/10;}
    .rp-sgt .split{grid-template-columns:1fr !important;}
    .rp-sgt .g4{grid-template-columns:1fr 1fr !important;}
    .rp-sgt .g3{grid-template-columns:1fr 1fr !important;}
    .rp-sgt .formgrid{grid-template-columns:1fr !important;}
    .rp-sgt .statstrip{grid-template-columns:repeat(3,1fr) !important;}
  }
  .rp-mcta-spacer{height:0;}
  @media (max-width:900px){
    .rp-nav .nav-inner{padding:8px 16px !important;gap:0 !important;}
    .rp-nav .nav-links{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap !important;}
    .rp-nav .nav-links::-webkit-scrollbar{display:none;}
    .rp-nav .nav-links a{white-space:nowrap;}
    .rp-nav .nav-phone{display:none;}
    /* short labels so all five sections fit one line without a scroll */
    .rp-nav .nav-short{display:inline;}
    .rp-nav .nav-full{display:none;}
    .rp-nav .nav-links a{padding:8px 9px;}
    /* the fixed bottom bar carries the CTA on mobile; a second copy in the
       sticky nav ate the width the section links needed to scroll. */
    .rp-nav .cta-o{display:none !important;}
    .rp-mcta{display:flex !important;}
    .rp-mcta-spacer{height:76px;}
  }
  @media (max-width:640px){
    .rp-sgt .g4{grid-template-columns:1fr !important;}
    .rp-sgt .g3{grid-template-columns:1fr !important;}
    .rp-sgt .g2{grid-template-columns:1fr !important;}
    .rp-sgt .statstrip{grid-template-columns:1fr 1fr !important;}
  }
  .rp-sgt .daysrow{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:5px;padding-bottom:10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .rp-sgt .daysrow::-webkit-scrollbar{display:none;}
  .rp-sgt .daysrow > div{flex:0 0 268px;scroll-snap-align:start;box-sizing:border-box;}
  @media (max-width:640px){
    .rp-sgt .daysrow{margin-inline:-20px;padding:0 20px 10px;}
    .rp-sgt .daysrow > div{flex-basis:76vw;}
  }
  .rp-sgt .matcher-shell{background:#fff;border:1px solid rgba(0,43,78,.14);border-radius:16px;box-shadow:0 18px 50px rgba(0,43,78,.1);padding:clamp(20px,3vw,34px);}
  .rp-sgt .matcher-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none;}
  .rp-sgt .matcher-tabs::-webkit-scrollbar{display:none;}
  .rp-sgt .matcher-tab{font:inherit;flex:0 0 auto;border:1px solid rgba(0,43,78,.18);border-radius:999px;background:#fff;color:#36505F;font-size:13.5px;font-weight:700;line-height:1.2;padding:10px 14px;cursor:pointer;}
  .rp-sgt .matcher-tab:hover{border-color:#1E6B87;color:#002b4e;}
  .rp-sgt .matcher-tab[aria-pressed="true"]{border-color:#002b4e;background:#002b4e;color:#fff;}
  .rp-sgt .matcher-fields{display:grid;grid-template-columns:minmax(240px,1.9fr) minmax(150px,1fr) auto;gap:10px;align-items:end;}
  .rp-sgt .matcher-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
  .rp-sgt .matcher-field label{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5C6B75;}
  .rp-sgt .matcher-field select{font:inherit;width:100%;min-height:50px;padding:11px 38px 11px 13px;border:1px solid rgba(0,43,78,.22);border-radius:7px;background:#fff;color:#002b4e;font-size:14px;font-weight:600;}
  .rp-sgt .matcher-submit{font:inherit;min-height:50px;border:0;border-radius:7px;background:#CD6414;color:#fff;font-size:14.5px;font-weight:700;padding:12px 19px;white-space:nowrap;cursor:pointer;}
  .rp-sgt .matcher-submit:hover{background:#B5570F;}
  .rp-sgt .matcher-results{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:12px;padding-bottom:10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .rp-sgt .matcher-results::-webkit-scrollbar{display:none;}
  .rp-sgt .matcher-results > *{flex:0 0 auto;min-width:0;}
  .rp-sgt .matcher-results .matcher-card{flex:0 0 calc((100% - 24px) / 3);scroll-snap-align:start;box-sizing:border-box;}
  .rp-sgt .matcher-card{display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid rgba(0,43,78,.14);border-radius:9px;overflow:hidden;padding:clamp(18px,2.5vw,24px);color:inherit;transition:border-color .2s ease;}
  /* Hover swaps to a SECOND photo from the program's own gallery — the card
     itself never moves. A translateY shifts text under the cursor mid-read and
     reads like a template; this shows the reader something new instead. */
  .rp-sgt .mc-fig{position:relative;display:block;overflow:hidden;
    width:calc(100% + 2 * clamp(18px,2.5vw,24px));max-width:none;
    margin:calc(-1 * clamp(18px,2.5vw,24px)) calc(-1 * clamp(18px,2.5vw,24px)) 4px;
    aspect-ratio:16/9;}
  .rp-sgt .mc-fig img{display:block;width:100%;height:100%;object-fit:cover;}
  .rp-sgt .mc-fig .mc-alt{position:absolute;inset:0;opacity:0;transition:opacity .45s ease;}
  .rp-sgt .matcher-card:hover .mc-fig .mc-alt,.rp-sgt .matcher-card:focus-visible .mc-fig .mc-alt{opacity:1;}
  @media (prefers-reduced-motion:reduce){
    .rp-sgt .mc-fig .mc-alt{transition:none;}
  }
  @media (hover:none){
    /* touch has no hover: never leave the second photo half-faded */
    .rp-sgt .mc-fig .mc-alt{display:none;}
  }
  .rp-sgt .matcher-card h3{margin:0;font-family:'IBM Plex Serif',Georgia,serif;font-size:clamp(1.15rem,2vw,1.35rem);line-height:1.25;font-weight:600;color:#002b4e;}
  .rp-sgt .matcher-card .mc-cta{margin-top:auto;padding-top:8px;display:grid;justify-items:start;align-items:center;}
  .rp-sgt .matcher-card .mc-cta > span{grid-area:1/1;transition:opacity .18s ease;}
  .rp-sgt .matcher-card .mc-cta-rest{font-size:13.5px;font-weight:700;color:#1E6B87;}
  .rp-sgt .matcher-card .mc-cta-hover{opacity:0;background:#CD6414;color:#fff;font-size:13.5px;font-weight:700;padding:10px 18px;border-radius:4px;white-space:nowrap;}
  .rp-sgt .matcher-card:hover .mc-cta-rest,.rp-sgt .matcher-card:focus-visible .mc-cta-rest{opacity:0;}
  .rp-sgt .matcher-card:hover .mc-cta-hover,.rp-sgt .matcher-card:focus-visible .mc-cta-hover{opacity:1;}
  @media (hover:none){.rp-sgt .matcher-card .mc-cta-rest{opacity:1 !important;}.rp-sgt .matcher-card .mc-cta-hover{opacity:0 !important;}}
  .rp-sgt .matcher-card-meta{font-size:13.5px;line-height:1.55;color:#2C3A43;}
  .rp-sgt .matcher-card-route{font-size:13.5px;line-height:1.5;color:#5C6B75;}
  @media (max-width:1000px){
    .rp-sgt .matcher-fields{grid-template-columns:1.35fr 1fr;}
    .rp-sgt .matcher-submit{grid-column:1/-1;}
    .rp-sgt .matcher-results .matcher-card{flex-basis:calc((100% - 12px) / 2);}
  }
  @media (max-width:640px){
    .rp-sgt .matcher-shell{border-radius:10px;}
    .rp-sgt .matcher-fields{grid-template-columns:1fr;}
    .rp-sgt .matcher-results{margin-inline:-20px;padding:0 20px 10px;}
    .rp-sgt .matcher-results .matcher-card{flex-basis:85vw;}
    .rp-sgt .matcher-tabs{margin-inline:-20px;padding-inline:20px;}
  }

  /* --- shell: mirrors the theme header so the page aligns to it (BUILDER-SPEC 2.0) --- */
  /* The theme sets border-box globally, so the CMS render gets it either way — but without
     this line the STANDALONE file is content-box and every container measures 80px wider
     than the shell. Local verification has to agree with the CMS or it is worthless. */
  .rp-sgt,.rp-sgt *,.rp-sgt *::before,.rp-sgt *::after{box-sizing:border-box;}
  .rp-sgt{--rp-gutter:40px;--rp-shell:1380px;}
  @media (max-width:49.9999rem){.rp-sgt,.rp-nav{--rp-gutter:24px;}}
  /* --- the theme sets these DIRECTLY on h1..h6 and p, and a direct declaration
         beats an inherited one, so they have to be re-asserted (BUILDER-SPEC 2.0.1) --- */
  .rp-sgt h1,.rp-sgt h2,.rp-sgt h3,.rp-sgt h4,.rp-sgt h5,.rp-sgt h6{font-family:'Geist','Helvetica Neue',Arial,sans-serif;}
  .rp-sgt p{font-size:inherit;line-height:inherit;}
  .rp-sgt a[href^="tel:"]{text-decoration:none;border-bottom:0;box-shadow:none;}
  /* --- port scaffolding: the conditional wrappers the canvas used to render --- */
  .rp-sgt [hidden],.rp-nav [hidden]{display:none !important;}
  .rp-sgt .itab{padding:11px 2px;margin-right:22px;border:0;border-bottom:3px solid transparent;color:#5C6B75;cursor:pointer;}
  .rp-sgt .itab[aria-selected="true"]{border-bottom-color:#CD6414;color:#002b4e;}
  /* the accordion already draws a rule above its summary; the first question inside
     must not draw a second one directly under it */
  .rp-sgt .acc-sum + div > div:first-child{border-top:0 !important;padding-top:14px !important;}