@charset "utf-8";
.rp-country-hub{font-family:"Geist","Helvetica Neue",Arial,sans-serif;font-size:16.5px;line-height:1.6;color:#2C3A43;background:#FBFAF8;--rp-gutter:40px;--rp-shell:1380px;}
.rp-country-hub .safety-link:hover{color:#fff;}
@media (max-width:49.9999rem){.rp-country-hub, .rp-nav, .other-destinations{--rp-gutter:24px;}}
.rp-country-hub h1, .rp-country-hub h2, .rp-country-hub h3, .rp-country-hub h4 {font-family:"Geist","Helvetica Neue",Arial,sans-serif;}
.rp-country-hub p{font-size:inherit;line-height:inherit;}
.rp-country-hub a[href^="tel:"]{text-decoration:none;border-bottom:0;box-shadow:none;}
.rp-country-hub a{color:#1E6B87;text-decoration:none;}
.rp-country-hub a:hover{color:#002b4e;}
.rp-country-hub summary{list-style:none;}
.rp-country-hub summary::-webkit-details-marker{display:none;}
#programs, #pricing, #curriculum, #teacher-support, #safety, #route, #fit, #patrick, #contact, #faq, #quote{scroll-margin-top:80px;}
.cta-o:hover{background:#B5570F;}
.cta-g:hover{border-color:#fff;background:rgba(255,255,255,.1);}
.navlink:hover{color:#002b4e;}
.rp-country-hub a:focus-visible, .rp-country-hub button:focus-visible, .rp-country-hub summary:focus-visible, .rp-country-hub input:focus-visible, .rp-country-hub select:focus-visible, .rp-country-hub textarea:focus-visible{outline:2px solid #CD6414;outline-offset:3px;border-radius:2px;}
#safety a:focus-visible, #quote a:focus-visible, #rp-hero a:focus-visible{outline-color:#F0A96A;}
.dmark::before{content:"+";}
.rp-country-hub details[open] .dmark::before{content:"\2212 ";}

.pcard:hover .pcard-alt{opacity:1;}

@media (max-width:820px){.rp-diff-fig{min-height:0;aspect-ratio:4/5;}}
.pcard:hover .pcard-cta{color:#CD6414;}
.pcard:hover .pcard-arrow{transform:translateX(5px);}

.dmark-sm::before{color:#1E6B87;}
.rqf input, .rqf select, .rqf textarea{font:inherit;font-size:16px;padding:10px 12px;border:1px solid rgba(0,43,78,.22);border-radius:4px;color:#2C3A43;background:#fff;min-width:0;width:100%;box-sizing:border-box;}
.rqf textarea{min-height:72px;resize:vertical;}
.rqf input:focus, .rqf select:focus, .rqf textarea:focus{outline:none;border-color:#CD6414;}
.rqf-err{display:none;margin:0;font-size:13.5px;font-weight:600;color:#B3382C;}
.rqf-err.is-shown{display:block;}
.is-sent .rqf-step, .is-sent .rqf-prog, .is-sent .rqf-steplabel, .is-sent .rqf-foot{display:none;}
.rqf-step[hidden]{display:none;}
@media (max-width:960px){
    .hero{grid-template-columns:1fr !important;}
    .hero > div, .hero > figure{grid-column:auto !important;grid-row:auto !important;}
    .hero > div:first-child{padding-bottom:clamp(20px,4vw,32px) !important;}
    .hero > figure{order:3;}
    .hero > div:nth-of-type(2){order:2;padding-top:0 !important;}
    .g3-even{grid-template-columns:1fr 1fr !important;}
    
    
    .split{grid-template-columns:1fr !important;}
    
    .promise-band{grid-template-columns:1fr !important;}
  }
@media (max-width:900px){
    .nav-inner{padding:8px 16px !important;}
    .nav-links{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap !important;}
    .nav-links::-webkit-scrollbar{display:none;}
    .nav-links a{white-space:nowrap;}
    .rp-nav .cta-o{display:none !important;}
    .nav-inner{gap:0 !important;}
    .mcta{display:flex !important;}
    .rp-mcta-spacer{height:76px;}
  }
.safety-shell > div:first-child > p:last-of-type{margin-bottom:18px;}
.safety-shell h2{margin:8px 0 12px;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.08;color:#fff;}
.safety-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.safety-stats div{border:1px solid rgba(255,255,255,.18);border-radius:7px;padding:18px;display:flex;flex-direction:column;gap:4px;}
.safety-stats strong{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.8rem;color:#fff;}
.safety-stats span{font-size:12px;line-height:1.45;color:rgba(255,255,255,.7);}
.rp-itin-shell{max-width:var(--rp-shell);margin-inline:auto;padding:clamp(40px,5vw,64px) var(--rp-gutter);display:flex;flex-direction:column;gap:20px;box-sizing:border-box;}
.rp-itin-title{display:flex;flex-direction:column;gap:10px;}
.rp-itin-title h2{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.08;font-weight:600;letter-spacing:-.02em;color:#002b4e;}
.rp-itin-title p{margin:0;max-width:74ch;color:#5C6B75;}
.rp-itin-tabs{display:flex;gap:24px;overflow-x:auto;border-bottom:1px solid rgba(0,43,78,.16);scrollbar-width:none;}
.rp-itin-tabs::-webkit-scrollbar, .rp-itin-days::-webkit-scrollbar{display:none;}
.rp-itin-tab{font:inherit;flex:0 0 auto;border:0;border-bottom:3px solid transparent;background:transparent;color:#2c3a43;font-size:13.5px;font-weight:700;padding:10px 2px 12px;cursor:pointer;}
.rp-itin-tab[aria-selected="true"]{color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-program[hidden]{display:none;}
.rp-itin-program{display:flex;flex-direction:column;gap:20px;}
.rp-itin-summary{display:grid;grid-template-columns:minmax(230px,320px) 1fr auto;gap:22px;align-items:center;border:1px solid rgba(0,43,78,.14);border-radius:12px;padding:14px;background:#FBFAF8;}
.rp-itin-summary img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:8px;}
.rp-itin-summary>div{display:flex;flex-direction:column;gap:7px;}
.rp-itin-kicker{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#A64F0E;}
.rp-itin-summary h3{margin:0;color:#002b4e;font-size:1.3rem;line-height:1.25;}
.rp-itin-summary p{margin:0;font-size:13.5px;line-height:1.5;color:#5C6B75;}
.rp-itin-meta{display:flex;gap:7px;flex-wrap:wrap;}
.rp-itin-meta span{background:#EAF1F3;border-radius:999px;padding:4px 8px;color:#002b4e;font-size:12px;font-weight:700;}
.rp-itin-route{font-size:12px!important;}
.rp-itin-choose{font:inherit;border:0;border-radius:4px;background:#CD6414;color:#fff;font-size:13.5px;font-weight:700;padding:12px 16px;cursor:pointer;white-space:nowrap;}
.rp-itin-day-heading{display:flex;justify-content:space-between;gap:18px;align-items:end;}
.rp-itin-day-heading>div:first-child{display:flex;flex-direction:column;gap:4px;}
.rp-itin-day-heading .rp-itin-days-label {margin:0;color:#002b4e;font-size:1.15rem;}
.rp-itin-day-heading p{margin:0;color:#5C6B75;font-size:13.5px;}


.rp-itin-days{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 1px 12px;scrollbar-width:none;}
.rp-itin-day{flex:0 0 294px;min-height:270px;scroll-snap-align:start;border:1px solid rgba(0,43,78,.15);border-radius:12px;background:#fff;padding:20px;display:flex;flex-direction:column;gap:14px;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;}
.rp-itin-day:hover{border-color:rgba(0,43,78,.4);box-shadow:0 10px 24px rgba(0,43,78,.08);}




.rp-itin-day h4 {margin:0;font-family:"Geist","Helvetica Neue",Arial,sans-serif;font-weight:700;font-size:1.15rem;line-height:1.3;letter-spacing:-.01em;color:#002b4e;}
.rp-itin-day p{margin:0;font-size:13.5px;line-height:1.58;color:#5C6B75;}




@media (max-width:900px){.rp-itin-summary{grid-template-columns:220px 1fr;}.rp-itin-summary .rp-itin-choose{grid-column:1/-1;}.rp-itin-choose{white-space:normal;width:100%;}}
@media (max-width:640px){
    .rp-itin-summary{grid-template-columns:1fr;}.rp-itin-summary img{aspect-ratio:16/9;}
    .rp-itin-day-heading{align-items:start;}
    .rp-itin-day{flex-basis:82vw;min-height:250px;}
    
  }
.rp-itin-day{border:0;box-shadow:0 1px 2px rgba(2,32,58,.10),0 4px 14px rgba(2,32,58,.07);padding:0;gap:10px;min-height:0;overflow:hidden;position:relative;transition:box-shadow .18s ease,transform .18s ease;}
.rp-itin-day:hover{box-shadow:0 2px 4px rgba(2,32,58,.12),0 10px 26px rgba(2,32,58,.12);}



.rp-itin-day h4{padding:6px 18px 0;}
.rp-itin-day p{padding:0 18px 18px;margin:0;}
.rp-itin-summary{border:0;background:#fff;box-shadow:0 1px 2px rgba(2,32,58,.08),0 6px 20px rgba(2,32,58,.07);padding:16px;}
.rp-itin-meta span{background:transparent;padding:4px 0;color:#2c3a43;font-weight:600;}
.rp-itin-meta span+span::before{content:"\00B7 ";margin:0 8px 0 2px;color:#9AA7AF;}
.rp-itin-meta span:last-child{background:#FCD34D;color:#1A2B49;border-radius:8px;padding:4px 10px;font-weight:700;}
.rp-itin-meta span:last-child::before{content:"";margin:0;}
.rp-itin-choose{border-radius:999px;padding:12px 22px;}
.rp-itin-kicker {display:inline-block;background:#FCD34D;color:#1A2B49;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;width:fit-content;}
.rp-itin-day p {font-size:16px;line-height:1.6;color:#5C6B75;}
.price-cta {border-radius:14px;padding:22px 26px;}
.price-cta .cta-o {border-radius:999px;padding:13px 24px;}
.rp-itin-summary{padding:22px;gap:28px;border-radius:16px;box-shadow:0 1px 2px rgba(2,32,58,.06),0 12px 32px rgba(2,32,58,.08);}
.rp-itin-summary img{border-radius:12px;}
.rp-itin-kicker{color:#5C6B75;font-weight:600;letter-spacing:.14em;font-size:10.5px;}
.rp-itin-summary h3{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;}
.rp-itin-summary p{font-size:16px;line-height:1.6;color:#2c3a43;max-width:58ch;}
.rp-itin-summary>div{gap:9px;}
.rp-itin-choose{background:#1A2B49;font-weight:600;padding:13px 26px;}
.rp-itin-choose:hover{background:#243a5e;}
.rp-itin-kicker{background:transparent!important;color:#8A6D3B;padding:0;border-radius:0;letter-spacing:.18em;font-size:10.5px;font-weight:600;}
.rp-itin-summary h3{font-family:"IBM Plex Serif",Georgia,serif;font-weight:500;font-size:1.65rem;letter-spacing:-.01em;}
.rp-itin-meta span:last-child{background:transparent;color:#1A2B49;padding:4px 0;font-weight:700;border-radius:0;}
.rp-itin-meta span:last-child::before{content:"\00B7 ";margin:0 8px 0 2px;color:#9AA7AF;font-weight:400;}
.rp-itin-summary>div{border-left:0;}
.rp-itin-choose{background:#CD6414;color:#fff;border:0;border-radius:4px;font-weight:700;letter-spacing:0;text-transform:none;font-size:13.5px;padding:13px 22px;transition:background .2s;}
.rp-itin-choose:hover{background:#B85812;color:#fff;}
.rp-itin-route{color:#8A939B!important;}
.price-cta .cta-o, .cta-o {border-radius:4px;padding:13px 24px;}
.rp-itin-choose{border-radius:4px;}
.rp-itin-meta{row-gap:4px;}
.rp-itin-meta span::before{content:""!important;margin:0!important;}
.rp-itin-meta span+span::after{content:"";}
.rp-itin-meta span:not(:last-child){margin-right:14px;}
.rp-itin-day h4 {font-family:"IBM Plex Serif",Georgia,serif;font-weight:500;font-size:1.2rem;line-height:1.3;letter-spacing:-.01em;color:#002b4e;}
.rp-itin-day-heading .rp-itin-days-label {font-family:"IBM Plex Serif",Georgia,serif;font-weight:500;font-size:1.4rem;}
.rp-itin-day{min-height:0;height:400px;}

.rp-itin-day p{font-size:13.5px;line-height:1.6;}
.rp-itin-summary h3{font-size:1.65rem;}
.rp-itin-summary{align-items:start;}
.rp-itin-summary .rp-itin-choose{align-self:center;}
.rp-itin-route{font-size:11px!important;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8A939B!important;line-height:1.7;}
.cur-band h3, .rp-itin-summary h3, .support-grid h3, .fit-grid h3, .content-split h3, .communication-note h3 {font-weight:500;}
.cta-o, .rp-itin-choose {font-size:16px!important;}
.section-heading p, .rp-itin-title p{font-size:16.5px;}
.rp-itin-summary{border-radius:12px!important;}
.rp-itin-radio{position:absolute;width:1px;height:1px;opacity:0;}
.rp-itin-program{display:none;}
.rp-itin-radio:focus-visible ~ .rp-itin-tabs{outline:2px solid #CD6414;outline-offset:3px;border-radius:3px;}
.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(1){display:block;}
.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(1){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(2){display:block;}
.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(2){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(3){display:block;}
.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(3){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(4){display:block;}
.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(4){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(5):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(5){display:block;}
.rp-itin-radio:nth-of-type(5):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(5){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(6):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(6){display:block;}
.rp-itin-radio:nth-of-type(6):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(6){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(7):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(7){display:block;}
.rp-itin-radio:nth-of-type(7):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(7){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(8):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(8){display:block;}
.rp-itin-radio:nth-of-type(8):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(8){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(9):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(9){display:block;}
.rp-itin-radio:nth-of-type(9):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(9){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(10):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(10){display:block;}
.rp-itin-radio:nth-of-type(10):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(10){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(11):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(11){display:block;}
.rp-itin-radio:nth-of-type(11):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(11){color:#1E6B87;border-bottom-color:#1E6B87;}
.rp-itin-radio:nth-of-type(12):checked ~ .rp-itin-panels > .rp-itin-program:nth-child(12){display:block;}
.rp-itin-radio:nth-of-type(12):checked ~ .rp-itin-tabs > .rp-itin-tab:nth-child(12){color:#1E6B87;border-bottom-color:#1E6B87;}
@media (max-width:960px){.rp-hero-media{margin-left:0 !important;}}
.rp-itin-day-heading{margin-top:clamp(22px,2.4vw,32px);}
.rp-itin-days{margin-top:14px;}
.rp-country-hub #faq details p + p {margin-top:14px;}
.rp-itin-fill span{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.25rem;
  font-weight:500;letter-spacing:-.01em;color:#fff;line-height:1.2;}

.rp-itin-fill--gap{background:#1E6B87;}
.rp-itin-day:has(.rp-itin-fill) .rp-itin-day-top{display:flex;}
@media (max-width:860px){.rp-itin-fill{height:150px;}}
.section-heading{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;}
.section-heading h2, .faq-shell>h2 {margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.08;font-weight:600;letter-spacing:-.02em;color:#002b4e;}
.section-heading p {margin:0;max-width:74ch;color:#5C6B75;}
.au-includes{display:flex;flex-direction:column;gap:12px;padding-top:8px;}
.au-includes h3{margin:0;font-family:"IBM Plex Serif",Georgia,serif;color:#002b4e;font-size:1.4rem;}
.au-include-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.au-include-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.au-include-grid li{font-size:13.5px;line-height:1.5;display:flex;gap:8px;}
.au-include-grid li:before{content:"\2713 ";color:#1E6B87;font-weight:800;}

.content-split h3, .support-grid h3, .communication-note h3{margin:0 0 8px;color:#002b4e;font-size:1.05rem;}
.factor-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:factors;}
.factor-list li{display:grid;grid-template-columns:1fr;gap:2px;}
.factor-list strong{color:#002b4e;font-size:13.5px;}
.factor-list span{font-size:13.5px;line-height:1.5;color:#5C6B75;}
.support-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.support-grid>div{border:1px solid rgba(0,43,78,.13);background:#fff;border-radius:7px;padding:22px;}
.support-grid ul, .fit-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.support-grid li, .fit-grid li{font-size:13.5px;line-height:1.5;}
.support-grid li:before{content:"\2713 ";color:#1E6B87;font-weight:800;margin-right:8px;}
.safety-shell .safety-link{display:inline-block;width:auto;}
.safety-link{color:#8FD3CB;font-weight:700;}

/* #safety module sub-heads and lists (Shayne, 2026-09-07, semantic pass — look/feel must not
   change). "What the team plans for" / "Controls built into every trip" were serif <p>s via
   the builder's _sub(); they are now real <h3>s, painted here to match the old <p> exactly,
   overriding the sheet's default navy h3 colour. Their regions/controls lists were bare
   concatenated <div>s; they are now real <ul>/<li>s, with list-style/margin/padding reset
   and the old flex spacing reproduced so nothing moves. The record card's own heading still
   uses _sub() (a <p>) and is unchanged. */
#safety h3.rp-safety-sub{margin:0 0 10px;font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem;font-weight:500;color:#fff;letter-spacing:-.01em;}
#safety .rp-safety-regions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
#safety .rp-safety-regions>li{display:flex;gap:12px;align-items:flex-start;}
#safety .rp-safety-controls{list-style:none;margin:0;padding:0;}
#safety .rp-safety-controls>li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid rgba(255,255,255,.14);}

/* rp-price-table: pricing structured content as real HTML tables (Shayne, 2026-09-07,
   via Steve Toth — pricing that is not a table "doesn't exist to the LLM"). Two variants
   share the base: --includes (label + detail) and --drivers (one row per raises/lowers
   factor, in the content's original order). Restyled same day (semantic work cannot change
   look/feel): the <caption> renders exactly like the old section h3 (serif, same size/
   colour/spacing, the thin rule beneath is the first row's border-top); <thead> stays in
   the markup for assistive tech but is visually hidden; rows reproduce the old flex-row
   label/text pairs pixel-for-pixel. Zero inline styles on the table itself. */
.rp-price-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:16px;margin:0;}
.rp-price-table caption{caption-side:top;text-align:left;font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem;font-weight:500;line-height:1.2;letter-spacing:-.01em;color:#002b4e;margin:0 0 8px;}
/* thead stays a real table-header-group (not position:absolute, which blockifies it out of
   the table and breaks table-layout:fixed's column-width calc below) — visually hidden with
   the height/overflow/clip-path sr-only trio instead, and its cells' own box collapsed to
   zero so the row itself renders at ~1px, same as position:absolute would have looked. */
.rp-price-table thead{height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.rp-price-table thead th{padding:0;border:0;font-size:1px;line-height:1px;}
.rp-price-table tbody th, .rp-price-table tbody td{padding:0;border-top:1px solid rgba(0,43,78,.12);vertical-align:top;text-align:left;}
/* table-layout:fixed sizes columns off the table's first row, which is the (visually hidden
   but still in-flow) thead row — so its cells need the same widths as the tbody's, or the
   fixed layout falls back to an even 50/50 split and the label column balloons. */
.rp-price-table--includes thead th:first-child{width:132px;box-sizing:border-box;}
.rp-price-table--drivers thead th:first-child{width:62px;box-sizing:border-box;}
.rp-price-table--includes tbody th[scope="row"]{width:132px;box-sizing:border-box;padding:10px 14px 10px 0;font-size:16px;font-weight:700;color:#002b4e;white-space:normal;}
.rp-price-table--includes tbody td{padding:10px 0;font-size:16px;line-height:1.55;color:#2C3A43;}
.rp-price-table--drivers tbody th[scope="row"]{width:62px;box-sizing:border-box;padding:8px 10px 8px 0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;vertical-align:baseline;}
.rp-price-table--drivers tbody th[scope="row"].rp-effect-raises{color:#A64F0E;}
.rp-price-table--drivers tbody th[scope="row"].rp-effect-lowers{color:#2E6B4F;}
.rp-price-table--drivers tbody td{padding:8px 0;font-size:16px;line-height:1.55;color:#2C3A43;vertical-align:baseline;}
@media (max-width:720px){
.rp-price-table caption{margin:0 0 14px;}
}
@media (max-width:49.9999rem){
.rp-price-table--includes tbody th[scope="row"]{white-space:normal;}
}







.faq-shell>div{margin-top:14px;}
.faq-shell details{border-bottom:1px solid rgba(0,43,78,.12);padding:14px 0;}
.faq-shell summary{cursor:pointer;display:flex;align-items:flex-start;gap:11px;}
.faq-shell summary h3{margin:0;font-size:1.05rem;font-weight:600;color:#002b4e;}
.faq-mark{flex:0 0 19px;width:19px;height:19px;margin-top:3px;border-radius:999px;border:1.5px solid rgba(0,43,78,.35);display:flex;align-items:center;justify-content:center;box-sizing:border-box;}
.faq-mark:before{content:"+";color:#1E6B87;font-size:13.5px;line-height:1;}
.faq-shell details[open] .faq-mark:before{content:"\2212 ";}
.faq-shell details>p{margin:10px 0 0 30px;font-size:16px;line-height:1.6;max-width:76ch;}
.au-gallery{margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;}
.au-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;}
.au-gallery[data-frames="1"]{grid-template-columns:1fr;}
.au-gallery[data-frames="2"]{grid-template-columns:repeat(2,1fr);}
.au-gallery[data-frames="3"]{grid-template-columns:repeat(3,1fr);}

@media (max-width:720px){
.au-include-grid, .content-split, .support-grid, .fit-grid{grid-template-columns:1fr;}
.au-gallery,.au-gallery[data-frames]{grid-template-columns:repeat(2,1fr);}.au-gallery[data-frames="1"]{grid-template-columns:1fr;}
}
.rp-itin-programs{background:#fff;}
.section-heading{gap:12px;margin-bottom:36px;}
.section-heading h2{margin:0;letter-spacing:-.02em;}
.section-heading p{margin:0;max-width:62ch;font-size:16.5px;line-height:1.6;color:#5C6B75;}
.support-grid>div, .content-split>div, .communication-note {background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;}
#teacher-support .support-grid>div{border-top:2px solid rgba(0,43,78,.18);padding-top:18px;}
.support-grid h3, .fit-grid h3, .content-split h3, .communication-note h3{font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.3rem,1.7vw,1.6rem);font-weight:600;letter-spacing:-.02em;color:#002b4e;margin:0 0 14px;}
.support-grid{gap:12px;}
.support-grid li, .fit-grid li{line-height:1.6;}
.comm-facts{display:flex;flex-direction:column;gap:18px;}
.comm-facts>div{border-left:0;padding-left:0;}
.comm-facts strong{display:block;font-family:"IBM Plex Serif",Georgia,serif;font-size:1.1rem;font-weight:600;color:#002b4e;margin-bottom:4px;}
.comm-facts p{margin:0;font-size:16px;line-height:1.6;}






.support-grid li:before, .fit-grid li:before, .au-include-grid li:before{color:#1E6B87;}
@media (max-width:720px){
.support-grid>div, .fit-grid>div, .content-split>div, .communication-note{padding:24px 22px;}
}
.au-includes h3, .section-heading h2{letter-spacing:-.01em;}
.faq-shell h2, .section-heading h2{font-size:clamp(1.9rem,3.4vw,2.5rem);}
.au-sp4{font-size:11px;font-weight:700;letter-spacing:.14em;color:#CD6414;}
.au-sp5{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.12rem;line-height:1.25;font-weight:600;letter-spacing:-.01em;color:#002b4e;}
.au-li4{border-top:1px solid rgba(0,43,78,.14);padding:16px 0;display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:baseline;}
#fit .fit-shell>div>p, .fit-shell p {font-size:16.5px;}

.support-grid li, .fit-grid li, .factor-list li{font-size:16px;}

@media (max-width:640px){

.statstrip{grid-template-columns:repeat(3,1fr)!important;gap:18px 12px!important;}
.rqf-row{grid-template-columns:1fr !important;}
}
.section-shell {max-width:var(--rp-shell);margin-inline:auto;padding:clamp(40px,5vw,64px) var(--rp-gutter);box-sizing:border-box;}
.price-cta {display:flex;justify-content:space-between;gap:20px;align-items:center;background:#002b4e;color:#fff;border-radius:8px;padding:18px 20px;}
.price-cta>div {display:flex;flex-direction:column;gap:2px;}

.price-cta .cta-o {background:#CD6414;color:#fff;font-size:13.5px;font-weight:700;padding:12px 18px;border-radius:4px;white-space:nowrap;}
.content-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,4.5vw,64px);align-items:start;}
.price-cta{margin-top:26px;}
.communication-note{margin-top:14px;border-top:1px solid rgba(0,43,78,.13);padding-top:18px;}
.communication-note p{margin:0;max-width:76ch;color:#5C6B75;}
.safety-shell{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(34px,5vw,72px);}
.safety-shell > div:first-child > p{margin:0 0 14px;}
.safety-shell p{color:rgba(255,255,255,.78);}
.fit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.fit-grid h3{margin:0 0 10px;color:#002b4e;}
.fit-grid li{display:flex;gap:8px;}
.fit-grid li:before{content:"\2713 ";color:#1E6B87;font-weight:800;}
@media (max-width:960px){
.safety-shell{grid-template-columns:1fr;}
}
@media (max-width:720px){
.price-cta {flex-direction:column;align-items:stretch;}
.price-cta .cta-o {text-align:center;}
.safety-stats{grid-template-columns:1fr 1fr;}
}
.section-shell{padding-block:clamp(56px,7vw,88px);}
.section-shell>div>p, .section-shell p{max-width:66ch;}
.section-shell li{line-height:1.7;}

#teacher-support .communication-note{border-top:1px solid rgba(0,43,78,.14);padding-top:24px;margin-top:24px;}
.fit-grid{gap:clamp(24px,3vw,40px);}
.fit-grid>div{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:18px 0 0!important;border-top:2px solid rgba(0,43,78,.18)!important;}
.communication-note{margin-top:12px;border-top:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,3.5vw,48px);align-items:start;}
@media (max-width:860px){
.communication-note{grid-template-columns:1fr;}
}
.communication-note p{color:#5C6B75;}
.cur-band h3 {margin:0;font-family:"Geist","Helvetica Neue",Arial,sans-serif;font-weight:700;letter-spacing:-.015em;color:#002b4e;line-height:1.15;}
.cur-band{background:transparent;border-radius:0;padding:clamp(10px,2vw,20px) 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(32px,4vw,48px) clamp(28px,3vw,44px);}
.cur-band>div{flex:0 1 300px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;}
.cur-band h3{font-size:clamp(1.3rem,1.7vw,1.6rem);}
.cur-band p{margin:0;font-size:16px;line-height:1.6;color:#2c3a43;max-width:36ch;}
.cur-band svg{width:44px;height:44px;color:#1E6B87;}
.cur-band h3 {font-family:"IBM Plex Serif",Georgia,serif;font-weight:500;letter-spacing:-.01em;}
.cur-band h3{font-size:1.35rem;}
#different .promise-band{max-width:var(--rp-shell);margin:0 auto;padding:clamp(40px,5vw,72px) var(--rp-gutter);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:stretch;}
@media (max-width:860px){
#different .promise-band{grid-template-columns:1fr;}
}
.navlink{font-family:"Geist","Helvetica Neue",Arial,sans-serif;}
#curriculum p, .cur-band p {color:#5C6B75;}
@media (max-width:900px){
.statstrip{grid-template-columns:repeat(3,1fr)!important;gap:18px 12px!important;}
}
@media (max-width:560px){
.statstrip{grid-template-columns:1fr 1fr!important;}
}
.rp-country-hub .factor-list{counter-reset:factors;}
.rp-country-hub .factor-list li{counter-increment:factors;display:grid;grid-template-columns:24px 1fr;column-gap:10px;}
.rp-country-hub .factor-list li::before{content:counter(factors) ".";grid-row:1/3;grid-column:1;font-size:13.5px;font-weight:700;color:#CD6414;font-variant-numeric:tabular-nums;}
.rp-country-hub .factor-list li strong,.rp-country-hub .factor-list li span{grid-column:2;display:block;}
.rp-country-hub .h2-section, .rp-country-hub .section-heading h2, .rp-country-hub .faq-shell>h2 {margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.1;font-weight:600;letter-spacing:-.02em;color:#002b4e;max-width:26ch;}
.rp-country-hub .h2-minor{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.7rem,3vw,2.2rem);line-height:1.1;font-weight:600;letter-spacing:-.02em;color:#002b4e;max-width:22ch;}
.rp-country-hub .h2-compact{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.5rem,2.6vw,1.9rem);line-height:1.15;font-weight:600;letter-spacing:-.015em;color:#002b4e;max-width:24ch;}
/* Related-destinations heading stays on one line (Shayne, 2026-09-07); the 24ch cap is for the contact H2 */
.rp-country-hub #destinations-h{max-width:none;}
.rp-country-hub .h2-invert{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.08;font-weight:600;letter-spacing:-.02em;color:#fff;max-width:22ch;}
@media (max-width:640px){
.g3-even{grid-template-columns:1fr !important;}

.g3-even > li:first-child{border-top:0 !important;padding-top:0 !important;}

}
.rp-itin-fill{order:-1;height:170px;border-radius:12px 12px 0 0;display:flex;
  align-items:center;justify-content:center;text-align:center;padding:16px;
  box-sizing:border-box;}

.rp-rail-nav{position:absolute;top:50%;margin-top:-22px;z-index:4;width:44px;height:44px;border-radius:999px;border:1px solid rgba(0,43,78,.14);background:#fff;color:#002b4e;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;box-shadow:0 6px 20px rgba(0,43,78,.18);opacity:0;transition:opacity .18s ease;}

.rp-rail-wrap.is-scrollable:hover .rp-rail-nav:not(:disabled),.rp-rail-wrap.is-scrollable:focus-within .rp-rail-nav:not(:disabled){opacity:1;}
.rp-rail-nav:disabled{opacity:0;visibility:hidden;pointer-events:none;}
.rp-rail-nav:hover{background:#002b4e;color:#fff;border-color:#002b4e;}


.safety-shell .safety-link:hover{text-decoration:underline;}


@media (hover:none),(max-width:640px){
.rp-rail-nav{display:none;}
}
@media (max-width:860px){
.safety-shell{grid-template-columns:1fr;}
}

.other-destinations{--rp-gutter:40px;--rp-shell:1380px;max-width:var(--rp-shell);margin-inline:auto;padding:14px var(--rp-gutter) 22px;box-sizing:border-box;border-top:1px solid rgba(0,43,78,.1);display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;}#destinations a{text-decoration:none;}#destinations a:hover,#destinations a:focus-visible{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;}

.rp-country-hub .statstrip strong{display:block;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.35rem,2.1vw,1.85rem);line-height:1;font-weight:600;color:#002b4e;letter-spacing:-.03em;}
.communication-note p + p{margin-top:14px;}
@media (max-width:860px){
.rp-itin-fill{height:150px;}
}
@media (max-width:720px){
.content-split{grid-template-columns:1fr;}
.fit-grid{grid-template-columns:1fr;}
.support-grid>div, .content-split>div{padding:0;}
.communication-note{padding-inline:0;}
}
@media (max-width:640px){
.rp-itin-day{min-height:250px;height:auto;}
.safety-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.safety-stats>div{overflow-wrap:anywhere;}
}
@media (max-width:49.9999rem){
.rp-country-hub, .rp-nav, .other-destinations{--rp-gutter:24px;}
}
@media (min-width:51.26rem){
.rp-diff-fig{min-height:340px;}
}
.cur-band .cur-eq{font-family:"IBM Plex Serif",Georgia,serif;font-style:italic;font-size:16px;line-height:1.5;color:#1E6B87;max-width:34ch;}
.cur-band .cur-tie{font-size:12px;line-height:1.4;letter-spacing:.02em;color:#8A97A1;max-width:34ch;}

#programs{--itin-navy:#002b4e;--itin-teal:#1e6b87;--itin-orange:#cd6414;--itin-ink:#2c3a43;--itin-muted:#5c6b75;--itin-line:rgba(0,43,78,.14);--itin-soft:#f4f7f7;--itin-warn:#8b4b12;--itin-warn-bg:#fff4e6;background:#fbfaf8;padding:clamp(42px,5vw,72px) var(--rp-gutter,40px);font-family:"Geist","Helvetica Neue",Arial,sans-serif}
/* ===== PROMOTED FROM THE PAGE HEADS 2026-09-04 =============================
   Each of these appeared in the custom_head_content of two or more hubs, so none is
   page-specific. Moved whole, at-rules included. thailand and united-kingdom are
   excluded: they carry entire component blocks locally, and promoting into that
   ADDS styling rather than moving it (SKILL rule 37). */
.rp-country-hub{margin:0;-webkit-font-smoothing:antialiased;}
#route{background:#F6F3ED;border-block:1px solid rgba(0,43,78,.1);padding-block:clamp(44px,5vw,64px);}
.rp-country-hub h2{letter-spacing:-.02em;}
#route > *{max-width:var(--rp-shell);margin-inline:auto;padding-inline:var(--rp-gutter);box-sizing:border-box;}
.rp-country-hub h3{font-weight:500;}
#different h2{font-size:clamp(1.9rem,3.4vw,2.5rem)!important;}
#safety p{font-size:16px;line-height:1.65;color:rgba(255,255,255,.82);}
#route{max-width:none !important;width:auto !important;padding-inline:0 !important;}

.rp-country-hub h2{font-weight:600!important;}
@media (max-width:640px){
    .statstrip{grid-template-columns:1fr 1fr !important;}
  }
.section-shell{max-width:var(--rp-shell);margin-inline:auto;padding:clamp(40px,5vw,64px) var(--rp-gutter);box-sizing:border-box;}
.safety-shell .safety-link{display:inline-block;width:auto;color:#8FD3CB;font-weight:700;text-decoration:none;}
.safety-shell > div:first-child > p{margin:0 0 14px;font-size:16px;line-height:1.65;color:rgba(255,255,255,.82);}
@media (max-width:49.9999rem){.rp-country-hub, .rp-nav{--rp-gutter:24px;}}
#faq{background:#fff;}
.rp-country-hub{margin:0;background:#FBFAF8;-webkit-font-smoothing:antialiased;}
#different{background:#fff;border-top:1px solid rgba(0,43,78,.1);}
.rp-country-hub{background:#fff;}
.rp-itin-fill{display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;min-height:150px;aspect-ratio:16/10;}
.rp-country-hub #safety a:hover{color:#fff;text-decoration-color:#fff;}
.rp-country-hub .safety-link{font-weight:700;border-bottom:0;padding-bottom:0;display:inline-block;margin-top:6px;}
.rp-country-hub #safety a{color:#B6E7E0;text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1px;text-decoration-color:rgba(182,231,224,.5);}

/* Quintin, 2026-09-04: #teacher-support stacked TWO rules above "Rustic Pathways can also
   help with" — .communication-note's 1px and .support-grid>div's 2px, one directly under the
   other. Keep the bolder line, drop the thin one. */
#teacher-support .communication-note{border-top:0;}

      #programs .rp-itin-shell{max-width:var(--rp-shell,1380px);margin-inline:auto}
      #programs button,#programs a,#programs input,#programs summary{font-family:inherit}
      #programs .rp-itin-print-letterhead,#programs .rp-itin-print-footer,#programs .rp-itin-print-book{display:none}
      #programs .rp-itin-title{margin-bottom:24px}
      #programs .rp-itin-title h2{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(2rem,3.8vw,3rem);line-height:1.08;font-weight:700;letter-spacing:-.02em;color:var(--itin-navy)}
      #programs .rp-itin-title p{margin:8px 0 0;color:var(--itin-muted)}
      #programs .rp-itin-planning{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin:0 0 18px;border-block:1px solid var(--itin-line);background:#fff}
      #programs .rp-itin-planning>div{padding:11px 14px;border-right:1px solid var(--itin-line);font-size:12px;line-height:1.4;color:var(--itin-muted)}
      #programs .rp-itin-planning>div:last-child{border-right:0}#programs .rp-itin-planning dd,#programs .rp-itin-key-grid dd{margin:0;font:inherit;color:inherit;line-height:inherit}#programs .rp-itin-planning,#programs .rp-itin-key-grid{margin-block:0}
      #programs .rp-itin-planning>div:last-child{text-align:left}
      #programs .rp-itin-planning dt,#programs .rp-itin-planning strong{display:block;font-weight:700;margin-bottom:2px;color:var(--itin-navy);font-size:11px}
      
      #programs .rp-itin-print{display:block;margin-top:5px;border:0;background:transparent;color:var(--itin-teal);padding:0;font:inherit;font-weight:700;text-align:left;text-decoration:underline;cursor:pointer}
      #programs .rp-itin-radio{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
      #programs .rp-itin-tabs{display:flex;gap:8px;overflow-x:auto;border-bottom:1px solid var(--itin-line);margin-bottom:14px;scrollbar-width:thin}
      #programs .rp-itin-tab{flex:1 1 0;min-width:220px;display:grid;gap:3px;padding:12px 14px 13px;color:#2c3a43;font-size:13.5px;font-weight:700;cursor:pointer;border:1px solid transparent;border-bottom:4px solid transparent;border-radius:8px 8px 0 0;transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}
      #programs .rp-itin-tab:hover{background:#eef5f5;color:var(--itin-navy)}
      /* 10.5px was too small to read comfortably: this line carries the duration, the subject and
   the starting price, which is the whole basis on which a reader picks a tab. 12.5px against
   the 14px tab title keeps the hierarchy while making the note legible (Quintin, 2026-09-03). */
#programs .rp-itin-tab small{color:var(--itin-muted);font-size:12px;line-height:1.45;font-weight:500}
      /* The radio ids are {slug}-itin-N and the panels are keyed by data-program-id, so an
         id selector here is one country's page. This sheet is SHARED (SKILL rule 27): on any
         other country these matched nothing, and because `#programs .rp-itin-program` sets
         display:none with an ID (1,1,0) it also outranks the v1 sheet's generic nth-of-type
         rule (0,5,0) — so the second v2 hub would have rendered NO itinerary at all.
         Structural, exactly as the v1 sheet already does it. */
      #programs .rp-itin-radio:nth-of-type(1):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(1),
      #programs .rp-itin-radio:nth-of-type(2):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(2),
      #programs .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3){color:#fff;background:var(--itin-teal);border-color:var(--itin-teal);border-bottom-color:var(--itin-navy);box-shadow:0 5px 14px rgba(0,43,78,.16)}
      #programs .rp-itin-radio:nth-of-type(1):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(1) small,
      #programs .rp-itin-radio:nth-of-type(2):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(2) small,
      #programs .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3) small{color:rgba(255,255,255,.88)}
      #programs .rp-itin-radio:nth-of-type(1):focus-visible~.rp-itin-tabs>.rp-itin-tab:nth-child(1),
      #programs .rp-itin-radio:nth-of-type(2):focus-visible~.rp-itin-tabs>.rp-itin-tab:nth-child(2),
      #programs .rp-itin-radio:nth-of-type(3):focus-visible~.rp-itin-tabs>.rp-itin-tab:nth-child(3){outline:3px solid rgba(205,100,20,.45);outline-offset:2px}
      #programs .rp-itin-program{display:none;background:#fff;border:1px solid rgba(0,43,78,.1);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,43,78,.05)}
      #programs .rp-itin-radio:nth-of-type(1):checked~.rp-itin-panels>.rp-itin-program:nth-child(1),
      #programs .rp-itin-radio:nth-of-type(2):checked~.rp-itin-panels>.rp-itin-program:nth-child(2),
      #programs .rp-itin-radio:nth-of-type(3):checked~.rp-itin-panels>.rp-itin-program:nth-child(3){display:block}
      #programs .rp-itin-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:#fff;border:0;border-radius:0;padding:20px 22px;box-shadow:none}
      #programs .rp-itin-summary:has(>img){grid-template-columns:150px minmax(0,1fr) auto}
      #programs .rp-itin-summary>img{display:block;width:150px;height:94px;aspect-ratio:16/10;object-fit:cover;border-radius:7px;background:var(--itin-soft)}
      #programs .rp-itin-summary:not(:has(>img)) {grid-template-columns:minmax(0,1fr) auto}
      #programs .rp-itin-kicker{display:block;margin-bottom:8px;font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8b6a30}
      #programs .rp-itin-summary h3{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(1.35rem,2.2vw,1.7rem);line-height:1.13;font-weight:700;color:var(--itin-navy)}
      #programs .rp-itin-summary h3+p{margin:4px 0 9px;color:var(--itin-muted);font-size:13.5px}
      #programs .rp-itin-meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:#2c3a43;font-size:13.5px;font-weight:700}
      #programs .rp-itin-route{margin:10px 0 0;font-size:12px;line-height:1.4;font-weight:600;color:#6f7d87}
      #programs .rp-itin-choose{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:5px;background:var(--itin-orange);color:#fff;padding:12px 18px;font:inherit;font-size:13.5px;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer}
      #programs .rp-itin-day-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:0;padding:13px 22px;background:#f4f7f7;border-top:1px solid var(--itin-line)}
      #programs .rp-itin-day-heading .rp-itin-days-label {margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:1.15rem;line-height:1.2;font-weight:700;color:var(--itin-navy)}
      #programs .rp-itin-day-heading p{margin:3px 0 0;color:var(--itin-muted);font-size:12px}
      #programs .rp-itin-days{display:grid;gap:0;background:#fff;border:0;border-top:1px solid var(--itin-line);border-radius:0;overflow:hidden}
      #programs .rp-itin-day{display:block;background:#fff;border:0;border-bottom:1px solid var(--itin-line);border-radius:0;overflow:visible;box-shadow:none}
      #programs .rp-itin-day:last-child{border-bottom:0}
      
      #programs:not([data-enhanced="true"]) .rp-itin-day{padding:14px 18px}
      #programs:not([data-enhanced="true"]) .rp-itin-day>.rp-itin-day-top{margin-bottom:8px;padding:0;border:0}
/* 2026-09-15 (issue #107): v1 sets .rp-itin-day-top{position:absolute} to pin the day badge over a
   card photo. v2 never restates `position`, so before hydration the "Day N" pill sat ON the day
   title on library cards that carry no photo, hiding the first word for crawlers and JS-off readers.
   Scoped to the v2 shell because v1 hubs load this same sheet and their badge is correct as is;
   :not(:has()) leaves a v2 card that does carry a photo alone. */
#programs .rp-itin-shell--library .rp-itin-day:not(:has(img,.rp-itin-fill))>.rp-itin-day-top{position:static}
      #programs:not([data-enhanced="true"]) .rp-itin-day>h4{margin:0 0 5px;padding:0}
      #programs:not([data-enhanced="true"]) .rp-itin-day>p{margin:0;color:#2c3a43;font-size:13.5px;line-height:1.55}
      
      #programs .rp-itin-fill{display:none}
      
      
      
      
      
      #programs .rp-itin-day h4{grid-column:1;grid-row:1/3;margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:1.08rem;line-height:1.22;font-weight:700;color:var(--itin-navy)}
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      @media(max-width:900px){
        #programs{--rp-gutter:24px}
        #programs .rp-itin-summary{grid-template-columns:minmax(0,1fr) auto}
        #programs .rp-itin-summary .rp-itin-choose{justify-self:start}
        
        
        
      }
      @media(max-width:680px){
        #programs{--rp-gutter:16px;padding-block:36px}
        #programs .rp-itin-tabs{margin-inline:-16px;padding-inline:16px}
        #programs .rp-itin-summary, #programs .rp-itin-summary:not(:has(>img)) {grid-template-columns:1fr}
        #programs .rp-itin-summary:has(>img){grid-template-columns:96px minmax(0,1fr);gap:14px}
        #programs .rp-itin-summary>img{width:96px;height:96px;aspect-ratio:1;max-height:none}
        #programs .rp-itin-summary:has(>img) .rp-itin-choose{grid-column:2;justify-self:start}
        
        
        
        #programs .rp-itin-day h4 {grid-column:1;grid-row:auto}
        #programs .rp-itin-day h4{font-size:1.02rem;margin-bottom:3px}
        
        
      }
      #programs .rp-itin-day-row{display:grid;grid-template-columns:92px minmax(0,1fr) minmax(190px,max-content) 22px;gap:14px;align-items:center;width:100%;min-height:58px;margin:0;padding:12px 16px;border:0;background:#fff;color:var(--itin-ink);font:inherit;text-align:left;cursor:pointer}
      #programs .rp-itin-day-row:hover{background:#f7f9f9}
      #programs .rp-itin-day-toggle:focus-visible{outline:3px solid rgba(30,107,135,.35);outline-offset:-3px}
      #programs .rp-itin-accordion-index{display:flex;flex-direction:column;gap:1px;color:var(--itin-teal);font-size:11px;line-height:1.25;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
      
      
      /* 10px was the smallest type on the page and it carried the four facts a planner scans a day
   row for. 12px with a wider gap, and the track below widened to match so the day TITLE keeps
   its room rather than paying for the increase (Quintin, 2026-09-03). */
#programs .rp-itin-accordion-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 12px;color:var(--itin-muted);font-size:12px;line-height:1.4;text-align:right}
      #programs .rp-itin-accordion-meta:empty{display:none}
      #programs .rp-itin-accordion-meta span{white-space:nowrap}
      #programs .rp-itin-accordion-icon{color:var(--itin-teal);font-size:20px;line-height:1;text-align:center;transition:transform .18s ease}
      #programs .rp-itin-day-row[data-open="true"] .rp-itin-accordion-icon{transform:rotate(45deg)}
      #programs .rp-itin-day-panel[hidden]{display:none}
      #programs .rp-itin-day-panel{border-top:1px solid var(--itin-line);background:#fbfcfc}
      #programs .rp-itin-day-panel-inner{padding:16px 54px 18px 122px}
      
      #programs .rp-itin-chronology{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:13px;padding-top:13px;border-top:1px solid var(--itin-line)}
      #programs .rp-itin-time-block{min-width:0}
      #programs .rp-itin-time-block strong{display:block;margin-bottom:3px;color:var(--itin-navy);font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em}
      #programs .rp-itin-time-block span{display:block;color:#2c3a43;font-size:12px;line-height:1.45}
      #programs .rp-itin-accordion-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px;margin-top:14px;padding-top:13px;border-top:1px solid var(--itin-line)}
      #programs .rp-itin-accordion-fact{min-width:0}
      
      
      #programs .rp-itin-accordion-fact dt{display:block;margin:0 0 2px;color:#5c6b75;font-size:9px;line-height:1.2;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
      #programs .rp-itin-accordion-fact dd{display:block;margin:0;color:var(--itin-ink);font-size:12px;line-height:1.45;font-weight:400}
      #programs .rp-itin-accordion-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px;margin-top:12px}
      #programs .rp-itin-accordion-more div{font-size:12px;line-height:1.45;color:var(--itin-muted)}
      #programs .rp-itin-accordion-more strong{display:block;color:var(--itin-navy);font-size:11px}
      #programs .rp-itin-key{margin:0 0 14px;border-top:1px solid var(--itin-line);border-bottom:1px solid var(--itin-line);background:#fff}
      #programs .rp-itin-key>summary{display:flex;align-items:center;min-height:42px;padding:8px 12px;color:var(--itin-teal);font-size:12px;font-weight:700;cursor:pointer}
      #programs .rp-itin-key-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;padding:0 12px 13px;color:var(--itin-muted);font-size:11px;line-height:1.45}
      #programs .rp-itin-key-grid dt,#programs .rp-itin-key-grid strong{display:block;font-weight:700;color:var(--itin-navy);font-size:11px}
      @media(max-width:800px){
        #programs .rp-itin-planning{grid-template-columns:repeat(2,minmax(0,1fr))}
        #programs .rp-itin-planning>div{border-bottom:1px solid var(--itin-line)}
        #programs .rp-itin-day-row{grid-template-columns:76px minmax(0,1fr) 22px;gap:10px;padding:11px 13px}
        #programs .rp-itin-accordion-meta{grid-column:2;grid-row:2;text-align:left}
        #programs .rp-itin-accordion-icon{grid-column:3;grid-row:1/3}
        #programs .rp-itin-day-panel-inner{padding:14px 16px 16px 99px}
        #programs .rp-itin-accordion-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
        #programs .rp-itin-accordion-more{grid-template-columns:repeat(2,minmax(0,1fr))}
        #programs .rp-itin-key-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
      }
      @media(max-width:520px){
        #programs .rp-itin-planning{grid-template-columns:1fr}
        #programs .rp-itin-planning>div{border-right:0}
        #programs .rp-itin-day-row{grid-template-columns:62px minmax(0,1fr) 20px;min-height:54px;padding:10px 11px}
        #programs .rp-itin-accordion-title{font-size:13.5px}
        #programs .rp-itin-day-panel-inner{padding:13px 13px 15px}
        #programs .rp-itin-accordion-facts,#programs .rp-itin-accordion-more{grid-template-columns:1fr 1fr;gap:9px 14px}
        #programs .rp-itin-key-grid{grid-template-columns:1fr 1fr}
        #programs .rp-itin-chronology{grid-template-columns:1fr;gap:9px}
      }
      @page{
        size:letter;
        margin:.68in .52in .58in;
        @top-left{content:"RUSTIC PATHWAYS  |  SCHOOL GROUP TRAVEL";color:#002b4e;font-family:Arial,sans-serif;font-size:8.5pt;font-weight:700;letter-spacing:.06em}
        
        
        
      }
      
      @media print{
        #programs{padding:0;background:#fff;color:#1f2f3a;font-family:Arial,"Helvetica Neue",sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
        #programs .rp-itin-print-letterhead{display:flex!important;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 .28in;padding:0 0 8px;border-bottom:3px solid var(--itin-teal);color:var(--itin-navy)}
        #programs .rp-itin-print-brand{font-size:21pt;line-height:1;font-weight:700;letter-spacing:.08em}
        #programs .rp-itin-print-brand img{display:block;width:2in;height:.85in;object-fit:cover;object-position:center}
        #programs .rp-itin-print-brand span{display:block;margin-top:5px;color:var(--itin-teal);font-size:8pt;line-height:1.2;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
        #programs .rp-itin-print-document{text-align:right}
        #programs .rp-itin-print-document strong{display:block;font-size:10pt;line-height:1.2;color:var(--itin-navy)}
        #programs .rp-itin-print-document span{display:block;margin-top:2px;font-size:8pt;line-height:1.2;color:var(--itin-muted)}
        #programs .rp-itin-print-footer{display:none!important}
        #programs .rp-itin-title{margin:0 0 12px;padding:0 0 10px;border-bottom:2px solid var(--itin-teal)}
        #programs .rp-itin-title h2{font-size:22pt;line-height:1.05;letter-spacing:-.02em}
        #programs .rp-itin-title p{margin-top:5px;font-size:9pt;line-height:1.35}
        #programs .rp-itin-planning{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 10px}
        #programs .rp-itin-planning>div{padding:7px 9px;font-size:7.5pt;line-height:1.35}
        #programs .rp-itin-planning>div:nth-child(6){border-right:0}
        #programs .rp-itin-planning>div:last-child{display:none!important}
        #programs .rp-itin-planning dt,#programs .rp-itin-planning strong{font-size:7.5pt}
        #programs .rp-itin-radio,#programs .rp-itin-tabs,#programs .rp-itin-print,#programs .rp-itin-choose{display:none!important}
        #programs .rp-itin-key{margin:0 0 12px;border-color:var(--itin-line);break-inside:avoid}
        #programs .rp-itin-key>summary{min-height:28px;padding:5px 8px;font-size:8pt}
        #programs .rp-itin-key-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px;padding:0 8px 8px;font-size:6.8pt;line-height:1.35}
        #programs .rp-itin-key-grid dt,#programs .rp-itin-key-grid strong{font-size:7pt}
        #programs .rp-itin-program{display:block!important;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
        #programs .rp-itin-summary{grid-template-columns:92px minmax(0,1fr)!important;gap:12px;padding:8px 0 10px;border-bottom:1px solid var(--itin-line);background:transparent}
        #programs .rp-itin-summary,#programs .rp-itin-day-heading{break-inside:avoid;break-after:avoid}
        #programs .rp-itin-summary>img{width:92px;height:58px;border-radius:3px}
        #programs .rp-itin-kicker{margin-bottom:3px;font-size:6.5pt;letter-spacing:.12em}
        #programs .rp-itin-summary h3{font-size:14pt}
        #programs .rp-itin-summary h3+p{margin:2px 0 5px;font-size:8pt}
        #programs .rp-itin-meta{gap:3px 14px;font-size:7.5pt}
        #programs .rp-itin-route{margin-top:5px;font-size:7pt}
        #programs .rp-itin-day-heading{padding:7px 0;background:#fff;border-top:0;border-bottom:2px solid var(--itin-teal)}
        #programs .rp-itin-day-heading .rp-itin-days-label {font-size:11pt}
        #programs .rp-itin-day-heading p{font-size:7pt}
        #programs .rp-itin-days{border:0;background:transparent;overflow:visible}
        #programs .rp-itin-day{border-bottom:1px solid var(--itin-line);background:transparent;break-inside:avoid-page;page-break-inside:avoid}
        #programs .rp-itin-day-row{grid-template-columns:52px minmax(0,1fr);min-height:0;gap:9px;padding:5px 0;border:0!important;background:transparent}
        #programs .rp-itin-accordion-index{font-size:6.7pt;line-height:1.15;letter-spacing:.04em}
        
        #programs .rp-itin-accordion-title{font-size:9pt;line-height:1.2}
        #programs .rp-itin-accordion-meta,#programs .rp-itin-accordion-icon{display:none!important}
        #programs .rp-itin-day-panel[hidden]{display:block!important}
        #programs .rp-itin-day-panel{border-top:0;background:transparent}
        #programs .rp-itin-day-panel-inner{padding:3px 0 8px 61px}
        #programs .rp-itin-accordion-copy{max-width:none;font-size:7.7pt;line-height:1.35}
        #programs .rp-itin-accordion-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 14px;margin-top:6px;padding-top:6px}
        #programs .rp-itin-accordion-fact dt{margin-bottom:1px;color:var(--itin-navy);font-size:6.2pt;line-height:1.15;font-weight:700;letter-spacing:0;text-transform:none}
        #programs .rp-itin-accordion-fact dd{font-size:6.8pt;line-height:1.28}
        #programs .rp-itin-accordion-more{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 14px;margin-top:6px}
        #programs .rp-itin-accordion-more div{font-size:6.8pt;line-height:1.28}
        #programs .rp-itin-accordion-more strong{font-size:6.3pt}

        /* The printed document is a decision aid, not a facsimile of the screen accordion. */
        #programs .rp-itin-title,#programs .rp-itin-planning,#programs .rp-itin-radio,#programs .rp-itin-tabs,#programs .rp-itin-key,#programs .rp-itin-panels{display:none!important}
        #programs .rp-itin-print-book{display:block!important;font-size:9.5pt;line-height:1.4;color:#263943}
        
        
        #programs .rp-itin-print-book>.rp-print-page:first-child:not(.rp-print-destination-cover){min-height:0}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        #programs .rp-print-policy-item{padding:10px 0;border-bottom:1px solid #cad5d9;break-inside:avoid}
        #programs .rp-print-policy-item:nth-child(odd){padding-right:.12in}
        #programs .rp-print-policy-item:nth-child(even){padding-left:.12in}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        #programs .rp-print-ribbon-cell[data-tone="travel"]{border-color:#84949c}
        #programs .rp-print-ribbon-cell[data-tone="culture"]{border-color:#b18a48}
        #programs .rp-print-ribbon-cell[data-tone="service"]{border-color:#6e8f62}
        #programs .rp-print-ribbon-cell[data-tone="field"]{border-color:#448184}
        #programs .rp-print-ribbon-cell[data-tone="adventure"]{border-color:#bd611c}
        #programs .rp-print-ribbon-cell[data-tone="high"]{border-color:#b74e22;background:#fff1e8}
        #programs .rp-print-ribbon-cell[data-tone="moderate"]{border-color:#b18a48;background:#fbf5e8}
        #programs .rp-print-ribbon-cell[data-tone="low"]{border-color:#6d9295;background:#edf5f5}
        #programs .rp-print-ribbon-cell[data-tone="pending"]{border-color:#9b632e;background:#fff5e8}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        #programs[data-print-mode="program"] .rp-print-day{grid-template-columns:minmax(0,1fr) 2.5in;padding:.15in 0}
        #programs[data-print-mode="program"] .rp-print-day-title h3{font-size:13.5pt}
        #programs[data-print-mode="program"] .rp-print-day-tags{font-size:8.4pt}
        #programs[data-print-mode="program"] .rp-print-time strong,#programs[data-print-mode="program"] .rp-print-learning strong{font-size:8.4pt}
        #programs[data-print-mode="program"] .rp-print-time span{font-size:10pt;line-height:1.42}
        #programs[data-print-mode="program"] .rp-print-learning span{font-size:9.6pt;line-height:1.42}
        #programs[data-print-mode="program"] .rp-print-day-rail h4{font-size:8.2pt}
        #programs[data-print-mode="program"] .rp-print-rail-item{font-size:8.8pt;line-height:1.36}
        #programs[data-print-mode="program"] .rp-print-rail-item strong{font-size:8.6pt}
      }

/* 🔴 v1 COMPATIBILITY. The v2 block is authored standalone, but it ships appended to the v1
   shared sheet, and both style the same .rp-itin-* class names. ID specificity only wins for
   properties v2 actually declares: anything v1 sets and v2 leaves alone survives. v1 builds a
   horizontal, fixed-height card rail; v2 is a vertical accordion. Measured on the resolved
   cascade 2026-09-03, these are the properties that leaked. */
#programs .rp-itin-days{scroll-snap-type:none;}
#programs .rp-itin-day{height:auto;min-height:0;flex:0 1 auto;scroll-snap-align:none;}
/* v1 pins the day label as a badge over the photo of a fixed-height card:
   .rp-itin-day-top{position:absolute;top:10px;left:10px;right:10px}. v2 never declares
   `position`, so v1 won and the "Day 1" pill sat ON TOP of the day title, unreadable, on
   every server-rendered day card. It is invisible once the v2 script rebuilds the row, which
   is why it survived the prototype: the collision only exists BEFORE hydration, which is what
   a crawler and a JS-off reader get, and what any screenshot of the built file shows. */

/* 🔴 The day narrative was indented 18px further left-in than everything under it. v1 pads the
   card's own prose — `.rp-itin-day p{padding:0 18px 18px}` — because in v1 the <p> sits inside a
   photo card with no padding of its own. v2 puts that same paragraph in `.rp-itin-day-panel-inner`,
   which already carries the padding, and styles it as `.rp-itin-accordion-copy` WITHOUT declaring
   `padding` — so v1 won and the sentence started 18px right of MORNING and ROUTE beneath it.
   Measured on the served page 2026-09-04: copy text at 347px, chronology and facts at 329.
   Same shape as the `position` leak above: a property v1 sets and v2 never restates. */
#programs .rp-itin-day p{padding:0;}

/* ===== STYLING PASS 2026-09-03: adapting the v2 section to the shipped hub =====
   Every rule here was measured on the live staging page before it was written down. */
/* ---- planning standards strip ------------------------------------------------------------
   Was seven rigid 185px columns reading as a spreadsheet. Hairline borders on the cells, not a
   1px grid gap: an auto-fit grid leaves empty tracks on the last row and a gap-as-border shows
   them as a grey void. */
#programs .rp-itin-planning{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  gap:0;background:transparent;border:1px solid var(--itin-line);border-radius:4px;overflow:hidden;}
#programs .rp-itin-planning>*{background:#fff;padding:15px 18px;
  border-right:1px solid var(--itin-line);border-bottom:1px solid var(--itin-line);}
#programs .rp-itin-planning strong{display:block;margin-bottom:5px;font-size:12px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--itin-teal);}


/* The two print actions are the section's only tools, not a "standard". Span the full last row
   and lay them out as an action bar. */
#programs .rp-itin-planning>*:has(.rp-itin-print){grid-column:1/-1;border-right:0;border-bottom:0;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--itin-soft);}
#programs .rp-itin-planning>*:has(.rp-itin-print) strong{margin:0 4px 0 0;}
#programs .rp-itin-print{display:inline-flex;align-items:center;gap:8px;width:auto;white-space:nowrap;
  padding:9px 16px;border:1px solid var(--itin-navy);border-radius:4px;background:#fff;
  color:var(--itin-navy);font-size:13.5px;font-weight:600;line-height:1.2;text-decoration:none;
  cursor:pointer;transition:background .15s,color .15s;}
#programs .rp-itin-print:hover{background:var(--itin-navy);color:#fff;}
#programs .rp-itin-print::before{content:"";width:14px;height:14px;flex:0 0 14px;background:currentColor;
  -webkit-mask:var(--pi) center/contain no-repeat;mask:var(--pi) center/contain no-repeat;}
#programs{--pi:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v8H6z'/></svg>");}

/* ---- "What applies across every itinerary" is a <details> with no affordance at all. */
#programs .rp-itin-key{border:1px solid var(--itin-line);border-radius:4px;background:#fff;}
#programs .rp-itin-key>summary{cursor:pointer;list-style:none;padding:13px 18px;font-size:13.5px;
  font-weight:600;color:var(--itin-navy);display:flex;align-items:center;gap:10px;}
#programs .rp-itin-key>summary::-webkit-details-marker{display:none;}
#programs .rp-itin-key>summary::before{content:"+";font-size:17px;font-weight:700;color:var(--itin-teal);width:13px;line-height:1;}
#programs .rp-itin-key[open]>summary::before{content:"\2212 ";}
#programs .rp-itin-key[open]>summary{border-bottom:1px solid var(--itin-line);}
#programs .rp-itin-key-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));padding:16px 18px;}

/* ---- summary photograph ---------------------------------------------------------------------
   v2 carries ONE photograph per itinerary, so a 150px thumbnail is not enough. The photo track
   is set by `:has(>img)`, which outranks a plain class selector, so the override has to match
   that shape.
   🔴 DESKTOP ONLY. v2 already collapses this correctly at 900px and again at 680px, where the
   photo becomes a 96px square. An unscoped version of this rule outranks those plain-class
   mobile rules and silently kept the 250px track on a phone, squeezing the text column to 2px.
   Never let a desktop rule outrank a mobile one. */
@media (min-width:901px){
  #programs .rp-itin-summary:has(>img){grid-template-columns:minmax(210px,250px) minmax(0,1fr) auto;align-items:start;}
  #programs .rp-itin-summary:has(>img)>img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:4px;}
}

/* ---- route line -----------------------------------------------------------------------------
   v1's .rp-itin-route is a short uppercase KICKER ("Peru · Cusco to the Amazon"). In v2 the same
   class carries a full sentence, and a letter-spaced all-caps sentence is unreadable. v1 sets
   font-size with !important, so that one property needs it back. */
#programs .rp-itin-route{text-transform:none;letter-spacing:normal;font-weight:400;
  font-size:13.5px!important;line-height:1.6;color:var(--itin-muted);max-width:70ch;}

/* ===== PRINT ISOLATION 2026-09-03 =========================================================
   🔴 The example was authored as a STANDALONE file in which #programs was the only content, so
   its @media print block only ever needed to hide things INSIDE #programs. On a real hub the
   book sits seven levels deep under body > .SiteWrapper > #main > .rp-country-hub > … and the
   other eleven sections — hero, pricing, curriculum, promise band, safety, route, fit, FAQ,
   contact, quote form — printed too.

   Measured: the comparison guide came out 19 pages instead of 3, and the itinerary 24 instead
   of 7.

   An element prints only if it IS the book, is INSIDE the book, or CONTAINS the book. Everything
   else is removed from the flow. `display:none` rather than `visibility:hidden`, or the hidden
   sections still reserve their space and emit blank pages.

   ⚑ The letterhead and footer are SIBLINGS of the book inside .rp-itin-shell, not children, so a
   naive "keep only the book" rule deletes the masthead and the page footer. The first render
   after the isolation landed came out with a bare rule where the Rustic Pathways logo block
   should be. Both are whitelisted. */
@media print{
  body *:not(
      :has(.rp-itin-print-book),
      .rp-itin-print-book, .rp-itin-print-book *,
      .rp-itin-print-letterhead, .rp-itin-print-letterhead *,
      .rp-itin-print-footer, .rp-itin-print-footer *
    ){display:none!important;}
  /* the surviving ancestor chain must not impose page layout on the document */
  body, .rp-country-hub, #programs, .rp-itin-shell {
    display:block!important;margin:0!important;padding:0!important;
    max-width:none!important;width:auto!important;min-height:0!important;
    background:#fff!important;border:0!important;box-shadow:none!important;}
  .rp-itin-print-book{display:block!important;position:static!important;
    width:100%!important;margin:0!important;}
}

/* ===== MOBILE PASS 2026-09-03 ==============================================================
   Measured at 390px on the live staging page. */
@media (max-width:680px){
  /* The fact list is the densest thing on the page. Two columns at 390px gives each fact a
     ~130px measure, about eighteen characters a line, and leaves ragged gaps wherever the two
     columns disagree on height. One column. */
  #programs .rp-itin-accordion-facts{grid-template-columns:1fr!important;gap:14px;}

  /* Its SIBLING had the same disease and was missed on 2026-09-03. `.rp-itin-accordion-more`
     is set to `1fr 1fr` by the same 520px rule, and it holds the longest prose on a day card
     (the Sequence, Preparation and Accessibility blocks), usually as a SINGLE child. So at
     390px a paragraph rendered in a 128px column with the other half of the row empty. Live on
     Tanzania and on the Peru prototype, measured 2026-09-04. Same fix, same reason. */
  #programs .rp-itin-accordion-more{grid-template-columns:1fr!important;gap:12px;}
}

/* ===== ROUTE MAP DRAW-ON 2026-09-04 =========================================================
   The #route figure may be a map (Ghana). The route line is drawn FULLY by default — the path
   ships stroke-dashoffset="0" — and this only re-draws it as the figure scrolls past. So a
   browser without scroll-driven animations, a reader who asked for less motion, a crawler and a
   printed page all get the finished route; nobody gets a blank map.

   It is CSS and not JS on purpose: make_push.py strips every <script> from the body and ships
   override_js_content as a config call, so an IntersectionObserver written into the page IIFE
   would pass every gate and never reach a live page. */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    
    .rp-route-line{animation:rp-route-draw linear both;animation-timeline:view();
      animation-range:entry 12% cover 42%;}
  }

  /* The collapsed row was a three-column grid: a 62px day gutter, a 198px title, an icon. That
     spends a sixth of a phone screen on "DAY 2" and squeezes every title onto two lines. Stack
     it — label, title, then chips — with the toggle pinned right across all three rows. */
  #programs .rp-itin-day-row{grid-template-columns:minmax(0,1fr) 24px;gap:3px 10px;align-items:start;}
  #programs .rp-itin-accordion-index{grid-column:1;grid-row:1;flex-direction:row;align-items:baseline;gap:7px;}
  
  #programs .rp-itin-accordion-title{grid-column:1;grid-row:2;}
  #programs .rp-itin-accordion-meta{grid-column:1;grid-row:3;justify-content:flex-start;
    flex-wrap:wrap;gap:4px 10px;margin-top:3px;}
  #programs .rp-itin-accordion-icon{grid-column:2;grid-row:1/4;align-self:center;}

  /* No separator glyph between chips: when they wrap, a "·" orphans at the start of the next
     line. The gap alone reads fine. */
}

/* ===== TAB-SWITCH SCROLL + MOBILE PHOTO STACK 2026-09-03 ==================================
   🔴 Switching itineraries jumped the reader to the top of the section.
   The tabs are <label for> driving hidden radios, and those radios are position:absolute at a
   fixed body coordinate just under the section start (measured: top:1020px, offsetParent BODY)
   while the tab strip sits ~400px lower. Clicking a tab focuses a radio, and the browser scrolls
   the focused element into view — 400px above the content the reader asked for.

   ⚑ Do NOT fix this in JavaScript. This page's scroll position cannot be set from script:
   window.scrollTo, documentElement.scrollTop and scrollIntoView all leave scrollY at 0. A JS
   "scroll to the panel" fix fails silently and looks like it worked.

   position:fixed keeps the radio inside the viewport at all times, so focusing it never scrolls
   and the page stays exactly where the reader left it — the tab strip is still on screen and the
   newly selected itinerary starts right below it. */
#programs .rp-itin-radio{position:fixed!important;top:0!important;left:0!important;}

@media (max-width:680px){
  /* The photo was a 96px square floated beside the copy, which pushed the deck into a narrow
     column beside it and left the card lopsided. One column, photo on top, full width. */
  #programs .rp-itin-summary:has(>img){grid-template-columns:minmax(0,1fr)!important;gap:14px!important;}
  #programs .rp-itin-summary>img{width:100%!important;height:auto!important;
    aspect-ratio:16/9!important;max-height:none!important;object-fit:cover;border-radius:4px;}
  #programs .rp-itin-summary:has(>img) .rp-itin-choose{grid-column:1!important;justify-self:stretch;}
}

/* .communication-note is a two-column grid and its third child is the "can also help with" block, so that block sat in column one: its rule ran half width with the card border stacked a few pixels beneath. Span it. Applies to every hub. */
.communication-note > div:nth-child(3){grid-column:1 / -1;}
.communication-note > div:nth-child(3){border-top:0 !important;padding-top:0 !important;}

/* ===== Itinerary format v2: program cover, overnight-base bar, on-screen comparison =====
   2026-09-05 (Shayne, from the "Argentina Program Library" prototype: keep its browsing
   hierarchy on top of the existing itinerary data). Emitted by port/build_itinerary_v2.py for
   every v2 hub on rebuild. The day rows the shared script builds are untouched. Rules ADD;
   nothing above is edited. The summary keeps its script contract (.rp-itin-summary>img, h3+p,
   [data-meta], .rp-itin-route) and only changes how the grid places those children. */
#programs .rp-itin-summary--cover,#programs .rp-itin-summary--cover:has(>img){display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(110px,1fr) auto auto auto auto auto auto auto;gap:0!important;align-items:end;padding:0;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(2,32,58,.08),0 6px 20px rgba(2,32,58,.07)}
#programs .rp-itin-summary--cover>img,#programs .rp-itin-summary--cover>svg {grid-column:1/-1;grid-row:1/5;width:100%!important;height:100%!important;min-height:240px;max-height:360px!important;aspect-ratio:3/1!important;object-fit:cover;border-radius:0;display:block;align-self:stretch}
#programs .rp-itin-summary--cover::before{content:"";grid-column:1/-1;grid-row:1/5;align-self:stretch;background:linear-gradient(180deg,rgba(0,43,78,0) 28%,rgba(0,43,78,.84) 100%);pointer-events:none;z-index:1}
#programs .rp-itin-summary--cover>.rp-itin-kicker{grid-column:1;grid-row:2;z-index:2;margin:0 24px 8px;color:rgba(255,255,255,.82);text-shadow:0 1px 2px rgba(0,0,0,.3)}
#programs .rp-itin-summary--cover>.rp-itin-cover-kicker{grid-column:1;grid-row:3;z-index:2;margin:0 24px 6px;color:#f7b267;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.3)}
#programs .rp-itin-summary--cover>.rp-itin-cover-kicker [data-meta="price"]{color:inherit;font:inherit}
#programs .rp-itin-summary--cover>h3{grid-column:1;grid-row:4;z-index:2;margin:0 24px 22px;color:#fff;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.1;text-shadow:0 1px 3px rgba(0,0,0,.35)}
#programs .rp-itin-summary--cover>.rp-itin-choose{grid-column:2;grid-row:4;z-index:2;margin:0 24px 22px 0;align-self:end;justify-self:end;box-shadow:0 2px 8px rgba(0,0,0,.25)}
#programs .rp-itin-summary--cover>h3+p{grid-column:1/-1;grid-row:5;margin:18px 24px 0;color:var(--itin-ink);font-size:16px;line-height:1.55;max-width:74ch}
#programs .rp-itin-summary--cover>.rp-itin-meta{grid-column:1/-1;grid-row:6;display:flex;flex-direction:row;flex-wrap:wrap;gap:4px 0;margin:8px 24px 0}
#programs .rp-itin-summary--cover>.rp-itin-route{grid-column:1/-1;grid-row:7;margin:8px 24px 0}
#programs .rp-itin-bases{grid-column:1/-1;grid-row:8;display:flex;gap:3px;list-style:none;margin:16px 24px 20px;padding:0}

#programs .rp-itin-bases>li strong{display:block;color:var(--itin-navy);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.25;overflow-wrap:anywhere}
#programs .rp-itin-bases>li:nth-child(6n/**/+2){--c:#cd6414}
#programs .rp-itin-bases>li:nth-child(6n/**/+3){--c:#2e7d5b}
#programs .rp-itin-bases>li:nth-child(6n/**/+4){--c:#6b4c9a}
#programs .rp-itin-bases>li:nth-child(6n/**/+5){--c:#b8860b}
#programs .rp-itin-bases>li:nth-child(6n/**/+6){--c:#3d4f5f}
#programs .rp-itin-bases>li[data-transit]{--c:#c3cbd1}
/* 2026-09-15 (issue #107): these are written at
   #programs .rp-itin-bases>li[data-nights="N"] / #programs .rp-itin-tab-bar>span[data-nights="N"]
   (0,1,2,1) so they beat the two flex:1 1 0 base rules (0,1,1,1) that had been collapsing every
   segment to equal width since 2026-09-05. The bare #programs [data-nights="N"] form they replace
   was (0,1,1,0) and never won at any viewport. KEEP THIS BLOCK BEFORE the @media (max-width:680px)
   rule that re-states #programs .rp-itin-bases>li[data-nights] at the same (0,1,2,1): that rule
   only keeps the mobile list stacked by being later in source. */
#programs .rp-itin-bases>li[data-nights="1"],#programs .rp-itin-tab-bar>span[data-nights="1"]{flex-grow:1}
#programs .rp-itin-bases>li[data-nights="2"],#programs .rp-itin-tab-bar>span[data-nights="2"]{flex-grow:2}
#programs .rp-itin-bases>li[data-nights="3"],#programs .rp-itin-tab-bar>span[data-nights="3"]{flex-grow:3}
#programs .rp-itin-bases>li[data-nights="4"],#programs .rp-itin-tab-bar>span[data-nights="4"]{flex-grow:4}
#programs .rp-itin-bases>li[data-nights="5"],#programs .rp-itin-tab-bar>span[data-nights="5"]{flex-grow:5}
#programs .rp-itin-bases>li[data-nights="6"],#programs .rp-itin-tab-bar>span[data-nights="6"]{flex-grow:6}
#programs .rp-itin-bases>li[data-nights="7"],#programs .rp-itin-tab-bar>span[data-nights="7"]{flex-grow:7}
#programs .rp-itin-bases>li[data-nights="8"],#programs .rp-itin-tab-bar>span[data-nights="8"]{flex-grow:8}
#programs .rp-itin-bases>li[data-nights="9"],#programs .rp-itin-tab-bar>span[data-nights="9"]{flex-grow:9}
#programs .rp-itin-bases>li[data-nights="10"],#programs .rp-itin-tab-bar>span[data-nights="10"]{flex-grow:10}
#programs .rp-itin-bases>li[data-nights="11"],#programs .rp-itin-tab-bar>span[data-nights="11"]{flex-grow:11}
#programs .rp-itin-bases>li[data-nights="12"],#programs .rp-itin-tab-bar>span[data-nights="12"]{flex-grow:12}
#programs .rp-itin-bases>li[data-nights="13"],#programs .rp-itin-tab-bar>span[data-nights="13"]{flex-grow:13}
#programs .rp-itin-bases>li[data-nights="14"],#programs .rp-itin-tab-bar>span[data-nights="14"]{flex-grow:14}
#programs .rp-itin-compare{margin:0 0 14px;border:1px solid var(--itin-line);border-radius:8px;background:#fff}
#programs .rp-itin-compare>summary{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 12px;color:var(--itin-teal);font-size:12px;font-weight:700;cursor:pointer;list-style:none}
#programs .rp-itin-compare>summary::-webkit-details-marker{display:none}
#programs .rp-itin-compare>summary::before{content:"+";font-size:17px;font-weight:700;color:var(--itin-teal);width:13px;line-height:1}
#programs .rp-itin-compare[open]>summary::before{content:"\2013 "}
#programs .rp-itin-compare-scroll{overflow-x:auto;padding:0 12px 12px}
#programs .rp-itin-compare table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.45;color:var(--itin-ink)}
#programs .rp-itin-compare th,#programs .rp-itin-compare td{padding:8px 10px;border-top:1px solid var(--itin-line);text-align:left;vertical-align:top;min-width:160px}

#programs .rp-itin-compare thead th:first-child{font-family:inherit;font-size:0;min-width:130px}
#programs .rp-itin-compare tbody th{width:130px;color:#5c6b75;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
#programs .rp-itin-panels+.rp-itin-key{margin:14px 0 0}
@media (max-width:680px){
  #programs .rp-itin-tabs{flex-wrap:wrap;overflow:visible;gap:6px}
  #programs .rp-itin-tab{flex:1 1 100%;min-width:0;border-radius:8px;border-bottom-width:1px;border-color:var(--itin-line)}
  #programs .rp-itin-summary--cover,#programs .rp-itin-summary--cover:has(>img){grid-template-columns:minmax(0,1fr)!important}
  #programs .rp-itin-summary--cover>img,#programs .rp-itin-summary--cover>svg {min-height:0;max-height:none!important;aspect-ratio:16/10!important}
  #programs .rp-itin-summary--cover>.rp-itin-kicker,#programs .rp-itin-summary--cover>.rp-itin-cover-kicker,#programs .rp-itin-summary--cover>h3{grid-column:1;margin-left:16px;margin-right:16px}
  #programs .rp-itin-summary--cover>h3{font-size:1.45rem;margin-bottom:16px}
  #programs .rp-itin-summary--cover>h3+p,#programs .rp-itin-summary--cover>.rp-itin-meta,#programs .rp-itin-summary--cover>.rp-itin-route{margin-left:16px;margin-right:16px}
  #programs .rp-itin-bases{margin:14px 16px 0;flex-direction:column;gap:4px}
  #programs .rp-itin-bases>li,#programs .rp-itin-bases>li[data-nights]{flex:0 0 auto;display:flex;align-items:baseline;gap:6px;padding:1px 0 1px 8px;border-top:0;border-left:12px solid var(--c);font-size:11px}
  #programs .rp-itin-bases>li strong{overflow-wrap:normal;font-size:10.5px;letter-spacing:.04em}
  #programs .rp-itin-summary--cover>.rp-itin-choose{grid-column:1!important;grid-row:9;margin:14px 16px 16px;justify-self:stretch;box-shadow:none}
}

/* ----- Library layout (Shayne, 2026-09-05, "Argentina Program Library"): one white card; a short
   heading with the proposal button; the program list as a LEFT PANEL beside the open program;
   subject pills; tinted overnight-base cells; a day-by-day eyebrow; big serif day numbers; the
   shared rules and the print buttons at the bottom. Radios, tabs, compare, panels, key and
   actions stay siblings, so the :checked reveal rules above are untouched. */
#programs .rp-itin-shell--library{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);grid-template-rows:auto auto auto auto auto auto;gap:18px 28px;align-items:start;background:#fff;border-radius:16px;padding:clamp(24px,3vw,40px) clamp(20px,3vw,40px);box-shadow:0 1px 2px rgba(2,32,58,.06),0 12px 34px rgba(2,32,58,.07)}
#programs .rp-itin-shell--library>.rp-itin-title{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 24px;align-items:start;margin:0 0 6px}
#programs .rp-itin-shell--library>.rp-itin-title h2{margin:0 0 8px}
#programs .rp-itin-shell--library>.rp-itin-title p{margin:0;max-width:62ch}
#programs .rp-itin-title-cta{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;background:var(--itin-orange);color:#fff;padding:12px 18px;font-size:13.5px;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;margin-top:6px}
#programs .rp-itin-title-cta:hover{background:#B5570F;color:#fff}
#programs .rp-itin-shell--library>.rp-itin-tabs{grid-column:1;grid-row:2/6;position:sticky;top:96px;display:flex;flex-direction:column;gap:8px;margin:0;border-bottom:0;overflow:visible;scrollbar-width:auto}
#programs .rp-itin-shell--library>.rp-itin-tabs::before{content:"Programs";display:block;margin:4px 0 2px;color:#5c6b75;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
#programs .rp-itin-shell--library>.rp-itin-compare{grid-column:2;grid-row:2;margin:0}
#programs .rp-itin-shell--library>.rp-itin-map{grid-column:2;grid-row:3;display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:8px 24px;align-items:start;margin:0;padding:16px 18px;border:1px solid var(--itin-line);border-radius:10px;background:#fff}
#programs .rp-itin-shell--library>.rp-itin-map>svg{grid-column:1;grid-row:1/3;width:100%;max-width:300px}
#programs .rp-itin-map-stops{grid-column:2;grid-row:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
#programs .rp-itin-map-stops li{display:flex;gap:9px;align-items:baseline;font-size:13.5px;line-height:1.45;color:var(--itin-navy)}
#programs .rp-itin-map-stops li>span:first-child{flex:0 0 auto;width:19px;height:19px;border-radius:50%;background:#B5561B;color:#fff;font-size:12px;font-weight:700;line-height:19px;text-align:center}
#programs .rp-itin-map-stops b{font-weight:700}
#programs .rp-itin-shell--library>.rp-itin-map>figcaption{grid-column:2;grid-row:2;margin:0;font-size:13.5px;line-height:1.5;color:var(--itin-muted)}
#programs .rp-itin-shell--library>.rp-itin-panels{grid-column:2;grid-row:4}
#programs .rp-itin-shell--library>.rp-itin-key{grid-column:2;grid-row:5;margin:0}
#programs .rp-itin-shell--library>.rp-itin-actions{grid-column:2;grid-row:6;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--itin-line)}
#programs .rp-itin-actions strong{margin-right:auto;color:var(--itin-teal);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
#programs .rp-itin-key .rp-itin-planning{margin:0 12px 6px;border:0;border-bottom:1px solid var(--itin-line)}
#programs .rp-itin-shell--library .rp-itin-tab{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto auto;gap:2px 12px;align-items:center;flex:0 0 auto;min-width:0;padding:10px 12px;border:1px solid var(--itin-line);border-radius:10px;background:#fff;color:var(--itin-navy);font-size:13.5px;line-height:1.25;transition:border-color .16s ease,box-shadow .16s ease}
#programs .rp-itin-shell--library .rp-itin-tab:hover{background:#fff;border-color:rgba(0,43,78,.4)}
#programs .rp-itin-shell--library .rp-itin-tab>img {grid-column:1;grid-row:1/4;display:block;width:52px;height:52px;object-fit:cover;border-radius:6px;background:var(--itin-soft)}
#programs .rp-itin-shell--library .rp-itin-tab>span:not(.rp-itin-tab-bar){grid-column:2;grid-row:1;font-weight:700}
#programs .rp-itin-shell--library .rp-itin-tab small{grid-column:2;grid-row:2;color:var(--itin-muted);font-size:12px;line-height:1.35;font-weight:500}
#programs .rp-itin-tab-bar{grid-column:2;grid-row:3;display:flex;gap:2px;height:5px;margin-top:4px;width:100%}
#programs .rp-itin-tab-bar>span{--c:#1e6b87;flex:1 1 0;min-width:3px;border-radius:2px;background:var(--c)}
#programs .rp-itin-tab-bar>span:nth-child(6n/**/+2){--c:#cd6414}
#programs .rp-itin-tab-bar>span:nth-child(6n/**/+3){--c:#2e7d5b}
#programs .rp-itin-tab-bar>span:nth-child(6n/**/+4){--c:#6b4c9a}
#programs .rp-itin-tab-bar>span:nth-child(6n/**/+5){--c:#b8860b}
#programs .rp-itin-tab-bar>span:nth-child(6n/**/+6){--c:#3d4f5f}
#programs .rp-itin-tab-bar>span[data-transit]{--c:#c3cbd1}
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(1):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(1),
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(2):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(2),
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3){color:#fff;background:var(--itin-navy);border-color:var(--itin-navy);border-bottom-color:var(--itin-navy);box-shadow:0 8px 20px rgba(0,43,78,.22)}
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(1):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(1) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(2):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(2) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3) small{color:rgba(255,255,255,.82)}
/* subject pills: the separators stay in the text for the shared script, hidden from sight */

#programs .rp-itin-sep{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#programs .rp-itin-summary--cover>.rp-itin-meta [data-meta="focus"]{display:inline}
/* overnight bases as tinted cells */
#programs .rp-itin-shell--library .rp-itin-bases{gap:2px}
#programs .rp-itin-shell--library .rp-itin-bases>li{padding:6px 8px 5px;border-top:3px solid var(--c);border-radius:0 0 4px 4px;background:#f4f6f7;background:color-mix(in srgb,var(--c) 12%,#fff)}
/* day-by-day eyebrow instead of the band */
#programs .rp-itin-shell--library .rp-itin-day-heading{background:transparent;padding:14px 18px 4px;border:0}
/* the eyebrow lines up with the Day text in the rows: 1px card border + the toggle inset at each breakpoint */
@media (max-width:900px){#programs .rp-itin-shell--library .rp-itin-day-heading{padding-left:18px;padding-right:18px}}
@media (max-width:680px){#programs .rp-itin-shell--library .rp-itin-day-heading{padding-left:13px;padding-right:13px}}
#programs .rp-itin-shell--library .rp-itin-day-heading .rp-itin-days-label {font-family:"Geist","Helvetica Neue",Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#5c6b75}
#programs .rp-itin-shell--library .rp-itin-day-heading p{font-size:12px}
/* day rows: big serif number, dot before the overnight chip */
#programs .rp-itin-shell--library .rp-itin-days{gap:6px}
#programs .rp-itin-shell--library .rp-itin-day{border:1px solid var(--itin-line);border-radius:10px;box-shadow:none}
#programs .rp-itin-shell--library .rp-itin-day-row{border-radius:10px}
/* one row per day on a desk: number | title | overnight · travel · effort | toggle. The stacked
   phone layout above 936 stays below 800px. */
@media (min-width:801px){
  #programs .rp-itin-shell--library .rp-itin-day-row{grid-template-columns:78px minmax(0,1fr) minmax(190px,max-content) 22px;gap:14px;align-items:center}
  #programs .rp-itin-shell--library .rp-itin-accordion-index{grid-column:1;grid-row:1;flex-direction:column;align-items:flex-start;gap:1px}
  #programs .rp-itin-shell--library .rp-itin-accordion-title{grid-column:2;grid-row:1}
  #programs .rp-itin-shell--library .rp-itin-accordion-meta{grid-column:3;grid-row:1;justify-content:flex-end;margin:0}
  #programs .rp-itin-shell--library .rp-itin-accordion-icon{grid-column:4;grid-row:1}
}
#programs .rp-itin-shell--library .rp-itin-accordion-index span{font-family:"IBM Plex Serif",Georgia,serif;font-size:20px;line-height:1;font-weight:500;letter-spacing:0;text-transform:none;color:var(--itin-navy);white-space:nowrap}
#programs .rp-itin-shell--library .rp-itin-accordion-meta span:first-child::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#5c6b75;vertical-align:1px}
@media (max-width:900px){
  #programs .rp-itin-shell--library{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto auto auto auto;gap:14px;padding:20px 16px;border-radius:12px}
  #programs .rp-itin-shell--library>.rp-itin-title{grid-template-columns:minmax(0,1fr)}
  #programs .rp-itin-title-cta{justify-self:start;margin-top:0}
  #programs .rp-itin-shell--library>.rp-itin-tabs{grid-column:1;grid-row:2;position:static;flex-direction:row;flex-wrap:wrap}
  #programs .rp-itin-shell--library>.rp-itin-tabs::before{flex:1 1 100%}
  #programs .rp-itin-shell--library .rp-itin-tab{flex:1 1 260px}
  #programs .rp-itin-shell--library>.rp-itin-compare{grid-column:1;grid-row:3}
  #programs .rp-itin-shell--library>.rp-itin-map{grid-column:1;grid-row:4;grid-template-columns:minmax(0,1fr)}
  #programs .rp-itin-shell--library>.rp-itin-map>svg{grid-row:1;max-width:360px}
  #programs .rp-itin-map-stops{grid-column:1;grid-row:2}
  #programs .rp-itin-shell--library>.rp-itin-map>figcaption{grid-column:1;grid-row:3}
  #programs .rp-itin-shell--library>.rp-itin-panels{grid-column:1;grid-row:5}
  #programs .rp-itin-shell--library>.rp-itin-key{grid-column:1;grid-row:6}
  #programs .rp-itin-shell--library>.rp-itin-actions{grid-column:1;grid-row:7;justify-content:flex-start}
  #programs .rp-itin-actions strong{flex:1 1 100%;margin:0}
}
@media print{
  #programs .rp-itin-compare,#programs .rp-itin-bases,#programs .rp-itin-cover-kicker{display:none!important}
}

/* ===== 2026-09-05 page polish (Shayne's picks from the staging review: 1, 2, 4, 5, 6, 8, 9, 10) =====
   1 hero lede · 2 photo blends into the navy · 8 more air between sections · 9 scrollspy state ·
   10 focus rings and one hover for every orange button. 4 (four-step type scale) and 6 (no
   hairlines on cream cards) are applied to the existing rules above and to the hub builder, not
   here. Hero paragraphs are inline-styled by the builder, hence !important. */
#rp-hero>div:nth-of-type(2)>p:first-of-type{font-size:1.18rem!important;line-height:1.45!important;font-weight:400;color:#fff!important;max-width:48ch!important}
#rp-hero>div:nth-of-type(2)>p:first-of-type+p{font-size:16px!important;line-height:1.6!important;color:#fff!important}
#rp-hero>div:nth-of-type(2)>p:first-of-type+p{margin-top:-6px!important}
.rp-hero-media{position:relative}
.rp-hero-media img{display:block}
.section-shell{padding-block:clamp(50px,6vw,80px)}
#route{padding-block:clamp(55px,6vw,80px)}
#programs{padding-block:clamp(50px,6vw,80px)}
@media (min-width:1200px) {
  #programs {
    padding-top: 32px;
  }

  #programs .rp-itin-shell--library {
    padding-top: 24px;
  }

  .statstrip {
    padding-block: 24px !important;
  }
}
.cta-o:hover,.rp-itin-choose:hover,.rp-itin-title-cta:hover,#programs .rp-itin-choose:hover{background:#B5570F!important;color:#fff}
.cta-o:focus-visible,.rp-itin-choose:focus-visible,.rp-itin-title-cta:focus-visible,.rp-itin-print:focus-visible,.navlink:focus-visible{outline:3px solid #F0A96A;outline-offset:3px}
.navlink[aria-current="true"]{color:#002b4e!important;box-shadow:inset 0 -2px 0 #002b4e}

/* ===== TYPE SYSTEM (Shayne, 2026-09-05: "how many fonts and styles are there, can we streamline")
   Two families. Serif = display: H1 (hero) · H2 clamp(1.9rem,3.4vw,2.5rem) · sub-head 1.4rem/500 ·
   figure 1.9rem/600 · module heading 1.9rem/600 · row title 1.25rem/600 (1.12rem ≤680px) · promise line 1.12rem/600 · cover title. Sans = text: standfirst
   16.5 · body 16 (was 15 until 2026-09-06: the theme sets body 19 and footer 16, so 15 was the smallest text on the page) · small 13.5 · caption 12 · micro label 11 uppercase; weights 400/600/700 only.
   !important where the builder still inlines a size. Rules ADD; nothing above is edited. */
#programs .rp-itin-title h2, #patrick h2, #contact h2 {font-size:clamp(1.9rem,3.4vw,2.5rem)!important;font-weight:600!important;line-height:1.08!important}
.support-grid h3, .fit-grid h3, .content-split h3, .communication-note h3, .au-includes h3, .cur-band h3, #pricing h3, #curriculum h3, #teacher-support h3 {font-family:"IBM Plex Serif",Georgia,serif!important;font-size:1.4rem!important;font-weight:500!important;line-height:1.2!important;letter-spacing:-.01em!important}
.rp-country-hub .statstrip strong{font-size:1.9rem!important;font-weight:600!important}
.faq-shell summary h3,#quote h3{font-size:16.5px!important;font-weight:700!important}
#different .promise-band span{font-weight:600}
#programs .rp-itin-cover-kicker {font-weight:700!important}
/* itinerary text on the same scale as the rest of the page */


#programs .rp-itin-key-grid,#programs .rp-itin-planning>div,#programs .rp-itin-compare td,#programs .rp-itin-accordion-meta,#programs .rp-itin-shell--library .rp-itin-day-heading p,#programs .rp-itin-shell--library .rp-itin-tab small{font-size:13.5px;line-height:1.5}
#programs .rp-itin-time-block span,#programs .rp-itin-accordion-fact dd,#programs .rp-itin-accordion-more div{font-size:16px;line-height:1.55;color:var(--itin-ink)}

#programs .rp-itin-accordion-fact dt,#programs .rp-itin-time-block strong,#programs .rp-itin-accordion-more strong{font-size:12px}
#programs .rp-itin-chronology{gap:16px;margin-top:16px;padding-top:16px}
#programs .rp-itin-accordion-facts{margin-top:16px;padding-top:16px}
#programs .rp-itin-accordion-fact dt, #programs .rp-itin-time-block strong, #programs .rp-itin-accordion-more strong, #programs .rp-itin-key-grid dt, #programs .rp-itin-key-grid strong, #programs .rp-itin-compare tbody th, #programs .rp-itin-planning dt, #programs .rp-itin-planning strong, #programs .rp-itin-shell--library .rp-itin-day-heading .rp-itin-days-label, #programs .rp-itin-shell--library>.rp-itin-tabs::before, #programs .rp-itin-actions strong, #programs .rp-itin-chip {font-size:11px}
#programs .rp-itin-key-grid dt,#programs .rp-itin-key-grid strong,#programs .rp-itin-planning dt,#programs .rp-itin-planning strong{display:block;margin-bottom:3px;text-transform:uppercase;letter-spacing:.06em}
#programs .rp-itin-chip,#programs .rp-itin-compare>summary,#programs .rp-itin-key>summary,#programs .rp-itin-cover-kicker{font-size:12px}
#programs .rp-itin-chip{display:inline-block;margin:0 6px 6px 0;padding:3px 10px;border:1px solid var(--itin-line);border-radius:999px;color:var(--itin-navy);font-size:12px;font-weight:600;line-height:1.4;}
@media (min-width:681px){#programs .rp-itin-accordion-facts{gap:14px 20px}}
#programs .rp-itin-day-panel-inner{padding:18px 32px 20px 96px}
/* section rhythm: one vertical measure for every band */
#different .promise-band,#patrick>div,#contact>div,#quote .split{padding-block:clamp(50px,6vw,80px)!important}
/* second sweep of the type system: the strays the census still showed */
#programs .rp-itin-title p{font-size:16.5px}
.rp-country-hub p[style*="font-size:1rem"]{font-size:16.5px!important}
#programs .rp-itin-shell--library .rp-itin-tab small{font-weight:400}
#programs .rp-itin-compare thead th{border-top:0;color:var(--itin-navy);font-family:"Geist","Helvetica Neue",Arial,sans-serif;font-size:13.5px;font-weight:700;}
#programs .rp-itin-bases>li{--c:#1e6b87;flex:1 1 0;min-width:0;margin:0;padding:6px 6px 0 0;border-top:5px solid var(--c);font-size:12px;line-height:1.3;color:var(--itin-muted);}
#programs .rp-itin-bases>li strong{font-size:11px}
@media (max-width:680px){#programs .rp-itin-bases>li{font-size:12px}#programs .rp-itin-bases>li strong{font-size:11px}}
/* ===== 2026-09-05 pm, Shayne's rulings on the loose ends and the reviewer's next tier ===== */
/* 2026-09-06 evening: the .78 fade on unselected program tabs removed; a faded tab reads as disabled, and the selected tab already carries the border and background. */
/* day-type chip: the shared script copies data-day-type into the index <small> */

#programs .rp-itin-shell--library .rp-itin-day[data-day-type="Culture"] .rp-itin-accordion-index small{background:#fbe9d7;color:#8b4b12}
#programs .rp-itin-shell--library .rp-itin-day[data-day-type="Field study"] .rp-itin-accordion-index small{background:#e2f1e8;color:#1f5f3f}
#programs .rp-itin-shell--library .rp-itin-day[data-day-type="Service"] .rp-itin-accordion-index small{background:#e6eef7;color:#1e4a7a}
.navlink{border-radius:3px;transition:color .15s ease,background-color .15s ease}
.navlink:hover{background:rgba(0,43,78,.06)}
#rp-quote-form input[type="text"],#rp-quote-form input[type="email"],#rp-quote-form input[type="tel"],#rp-quote-form select,#rp-quote-form textarea{font:inherit;font-size:16px;color:#2C3A43;padding:11px 12px;border:1px solid rgba(0,43,78,.28);border-radius:4px;background:#fff;box-sizing:border-box;width:100%}
#rp-quote-form textarea{min-height:88px;resize:vertical}
#rp-quote-form input:focus-visible,#rp-quote-form select:focus-visible,#rp-quote-form textarea:focus-visible{outline:2px solid #CD6414;outline-offset:1px;border-color:#CD6414}
#rp-quote-form [aria-disabled="true"]{opacity:.55;cursor:not-allowed}
/* ── MAP FOLLOWS THE SELECTED PROGRAM (2026-09-05) ─────────────────────────────
   Routes carry .rp-route-line--N and numbered marker groups .rp-route-stops--N from
   port/make_route_map.py; the module emits one .rp-itin-map-stops--N list and one
   .rp-itin-map-caption--N per program. The map is a sibling of the program radios inside
   .rp-itin-shell--library, so :checked reaches it with no script. Every rule here carries the
   #programs id so it outranks the base list and caption rules above. Default (radio 1 checked,
   or no JS) is program 1: its route solid, its markers and list shown, the others hidden. */
#programs .rp-itin-shell--library>.rp-itin-map svg .rp-route-line{transition:opacity .25s,stroke .25s}
#programs .rp-itin-shell--library>.rp-itin-map .rp-itin-map-stops--2, #programs .rp-itin-shell--library>.rp-itin-map .rp-itin-map-stops--3, #programs .rp-itin-shell--library>.rp-itin-map .rp-itin-map-caption--2, #programs .rp-itin-shell--library>.rp-itin-map .rp-itin-map-caption--3, #programs .rp-itin-shell--library>.rp-itin-map svg .rp-route-stops--2, #programs .rp-itin-shell--library>.rp-itin-map svg .rp-route-stops--3, #programs .rp-itin-shell--library>.rp-itin-map svg .rp-route-line--2, #programs .rp-itin-shell--library>.rp-itin-map svg .rp-route-line--3 {display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-line--1{display:inline;stroke:#B5561B;stroke-width:2.6;stroke-dasharray:none;opacity:1}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-stops--1{display:inline}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-stops--1{display:flex}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-caption--1{display:block}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-line--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-halo--2{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-stops--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-stops--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-caption--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-line--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-halo--3{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-stops--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-stops--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-caption--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-line--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-halo--4{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map svg .rp-route-stops--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-stops--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map .rp-itin-map-caption--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-line--2{display:inline;stroke:#B5561B;stroke-width:2.6;stroke-dasharray:none;opacity:1}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-stops--2{display:inline}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-stops--2{display:flex}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-caption--2{display:block}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-line--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-halo--1{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-stops--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-stops--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-caption--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-line--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-halo--3{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-stops--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-stops--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-caption--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-line--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-halo--4{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map svg .rp-route-stops--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-stops--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map .rp-itin-map-caption--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-line--3{display:inline;stroke:#B5561B;stroke-width:2.6;stroke-dasharray:none;opacity:1}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-stops--3{display:inline}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-stops--3{display:flex}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-caption--3{display:block}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-line--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-halo--1{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-stops--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-stops--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-caption--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-line--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-halo--2{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-stops--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-stops--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-caption--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-line--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-halo--4{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map svg .rp-route-stops--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-stops--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map .rp-itin-map-caption--4{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-line--4{display:inline;stroke:#B5561B;stroke-width:2.6;stroke-dasharray:none;opacity:1}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-stops--4{display:inline}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-stops--4{display:flex}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-caption--4{display:block}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-line--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-halo--1{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-stops--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-stops--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-caption--1{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-line--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-halo--2{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-stops--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-stops--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-caption--2{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-line--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-halo--3{opacity:0}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map svg .rp-route-stops--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-stops--3{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(4):checked ~ .rp-itin-map .rp-itin-map-caption--3{display:none}

/* ---- Day rows, Shayne's layout 2026-09-06: "Day N" | eyebrow + serif title + meta | chevron;
   hairlines instead of cards; a serif heading with Expand all. Appended so it wins. ---- */
#programs .rp-itin-shell--library .rp-itin-day-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 18px 16px;border-bottom:1px solid var(--itin-line)}
#programs .rp-itin-shell--library .rp-itin-day-heading .rp-itin-days-label {font-family:"IBM Plex Serif",Georgia,serif;font-size:1.9rem;line-height:1.15;font-weight:600;letter-spacing:0;text-transform:none;color:var(--itin-navy)}
#programs .rp-itin-expand-all{flex:0 0 auto;margin:0;padding:10px 16px;border:1px solid var(--itin-line);border-radius:8px;background:#fff;color:var(--itin-navy);font-family:inherit;font-size:16px;line-height:1.2;font-weight:600;cursor:pointer}
#programs .rp-itin-expand-all:hover{background:#f7f9f9}
#programs .rp-itin-expand-all:focus-visible{outline:3px solid rgba(30,107,135,.35);outline-offset:2px}
#programs .rp-itin-shell--library .rp-itin-days{gap:0}
#programs .rp-itin-shell--library .rp-itin-day{border:0;border-bottom:1px solid var(--itin-line);border-radius:0;box-shadow:none}
#programs .rp-itin-shell--library .rp-itin-day-row,#programs .rp-itin-day-row{display:grid;grid-template-columns:64px minmax(0,1fr) 22px;grid-template-rows:auto;gap:14px;align-items:center;padding:20px 18px;border-radius:0}
#programs .rp-itin-day-row:hover{background:#fbfcfc}
#programs .rp-itin-accordion-index,#programs .rp-itin-shell--library .rp-itin-accordion-index{grid-column:1;grid-row:1;display:block;font-family:"Geist","Helvetica Neue",Arial,sans-serif;font-size:13.5px;line-height:1.3;font-weight:400;letter-spacing:0;text-transform:none;color:var(--itin-muted)}
#programs .rp-itin-accordion-index span,#programs .rp-itin-shell--library .rp-itin-accordion-index span{font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;letter-spacing:0;text-transform:none;color:inherit}
#programs .rp-itin-accordion-body{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;text-align:left}
#programs .rp-itin-accordion-type{display:block;color:var(--itin-teal);font-size:11px;line-height:1.2;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
#programs .rp-itin-accordion-title{color:var(--itin-navy);font-family:"IBM Plex Serif",Georgia,serif;font-size:1.25rem;line-height:1.3;font-weight:600;grid-column:auto;grid-row:auto;letter-spacing:0;}
#programs .rp-itin-accordion-meta,#programs .rp-itin-shell--library .rp-itin-accordion-meta{grid-column:auto;grid-row:auto;justify-content:flex-start;gap:4px 18px;margin:2px 0 0;color:var(--itin-muted);font-size:13.5px;line-height:1.4;text-align:left}
#programs .rp-itin-shell--library .rp-itin-accordion-meta span:first-child::before{content:none}
#programs .rp-itin-accordion-icon,#programs .rp-itin-shell--library .rp-itin-accordion-icon{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--itin-navy);font-size:0}
#programs .rp-itin-day-row[data-open="true"] .rp-itin-accordion-icon{transform:rotate(180deg)}
#programs .rp-itin-shell--library .rp-itin-day-panel-inner,#programs .rp-itin-day-panel-inner{padding:6px 40px 26px 96px}
@media (max-width:900px){
  #programs .rp-itin-shell--library .rp-itin-day-row,#programs .rp-itin-day-row{grid-template-columns:56px minmax(0,1fr) 20px;gap:12px;padding:16px 18px}
  #programs .rp-itin-accordion-title{font-size:1.12rem}
  #programs .rp-itin-shell--library .rp-itin-day-panel-inner,#programs .rp-itin-day-panel-inner{padding:4px 18px 22px 86px}
  #programs .rp-itin-shell--library .rp-itin-day-heading .rp-itin-days-label {font-size:1.4rem}
}
@media (max-width:680px){
  #programs .rp-itin-shell--library .rp-itin-day-row,#programs .rp-itin-day-row{grid-template-columns:48px minmax(0,1fr) 20px;gap:10px;padding:14px 13px}
  #programs .rp-itin-accordion-index,#programs .rp-itin-shell--library .rp-itin-accordion-index{font-size:13.5px}
  #programs .rp-itin-accordion-title{font-size:1.12rem}
  #programs .rp-itin-accordion-meta,#programs .rp-itin-shell--library .rp-itin-accordion-meta{font-size:13.5px;gap:2px 12px}
  #programs .rp-itin-shell--library .rp-itin-day-panel-inner,#programs .rp-itin-day-panel-inner{padding:4px 13px 18px 13px}
  #programs .rp-itin-shell--library .rp-itin-day-heading{padding:18px 13px 12px;flex-wrap:wrap}
  #programs .rp-itin-shell--library .rp-itin-day-heading .rp-itin-days-label {font-size:1.4rem}
  #programs .rp-itin-expand-all{padding:8px 12px;font-size:13.5px}
}
@media print{
  #programs .rp-itin-expand-all{display:none!important}
  #programs .rp-itin-day-row{grid-template-columns:52px minmax(0,1fr);padding:5px 0}
  #programs .rp-itin-accordion-type{font-size:6.5pt}
  #programs .rp-itin-accordion-title{font-size:10pt;line-height:1.2}
  #programs .rp-itin-day-panel-inner{padding:3px 0 8px 61px}
}
/* ---- Open panel, Shayne's layout 2026-09-06: lede, route line, timeline + outcome | practical
   details box. Appended so it wins over the older grid rules. ---- */
#programs .rp-itin-accordion-copy{margin:0;max-width:80ch;color:var(--itin-ink);font-size:16.5px;line-height:1.6;}
#programs .rp-itin-accordion-route{margin:12px 0 0;color:var(--itin-muted);font-size:13.5px;line-height:1.5}
#programs .rp-itin-panel-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.85fr);gap:28px;align-items:start;margin-top:20px}
#programs .rp-itin-panel-main{min-width:0}
#programs .rp-itin-panel-main .rp-itin-chronology{display:flex;flex-direction:column;gap:22px;position:relative;margin:4px 0 0;padding:4px 0 6px 34px;border:0}
#programs .rp-itin-panel-main .rp-itin-chronology::before{content:"";position:absolute;left:5px;top:10px;bottom:0;border-left:1px solid var(--itin-line)}
#programs .rp-itin-panel-main .rp-itin-time-block{position:relative;min-width:0}
#programs .rp-itin-panel-main .rp-itin-time-block::before{content:"";position:absolute;left:-34px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--itin-teal)}
#programs .rp-itin-panel-main .rp-itin-time-block strong{display:block;margin:0 0 6px;color:var(--itin-teal);font-size:12px;line-height:1.2;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
#programs .rp-itin-panel-main .rp-itin-time-block span{display:block;color:var(--itin-ink);font-size:16px;line-height:1.55}
#programs .rp-itin-accordion-outcome{margin-top:24px;padding-top:18px;border-top:1px solid var(--itin-line)}
#programs .rp-itin-accordion-outcome strong{display:block;margin:0 0 8px;color:var(--itin-teal);font-size:12px;line-height:1.2;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
#programs .rp-itin-accordion-outcome p{margin:0;color:var(--itin-ink);font-size:16px;line-height:1.55}
#programs .rp-itin-panel-aside{background:#f2f5f6;padding:22px 24px 24px;border-radius:2px;min-width:0}
#programs .rp-itin-panel-aside-label{display:block;margin:0 0 14px;color:var(--itin-navy);font-size:12px;line-height:1.2;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
#programs .rp-itin-panel-aside .rp-itin-accordion-facts{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;border:0}
#programs .rp-itin-panel-aside .rp-itin-accordion-fact[hidden]{display:none}
#programs .rp-itin-panel-aside .rp-itin-accordion-fact dt{margin:0 0 3px;color:var(--itin-muted);font-size:13.5px;line-height:1.3;font-weight:400;letter-spacing:0;text-transform:none}
#programs .rp-itin-panel-aside .rp-itin-accordion-fact dd{margin:0;color:var(--itin-ink);font-size:16px;line-height:1.5}
@media (max-width:900px){
  #programs .rp-itin-panel-grid{grid-template-columns:1fr;gap:20px}
  #programs .rp-itin-panel-aside{padding:18px}
}
@media (max-width:680px){
  #programs .rp-itin-accordion-copy{font-size:16.5px}
  #programs .rp-itin-panel-main .rp-itin-chronology{gap:16px;padding-left:26px}
  #programs .rp-itin-panel-main .rp-itin-time-block::before{left:-26px;width:9px;height:9px}
  #programs .rp-itin-panel-main .rp-itin-time-block span,#programs .rp-itin-accordion-outcome p,#programs .rp-itin-panel-aside .rp-itin-accordion-fact dd{font-size:16px}
}
@media print{
  #programs .rp-itin-panel-grid{display:block}
  #programs .rp-itin-panel-aside{background:transparent;padding:0}
  #programs .rp-itin-panel-aside-label,#programs .rp-itin-accordion-route,#programs .rp-itin-accordion-outcome{display:none}
  #programs .rp-itin-panel-aside .rp-itin-accordion-fact[hidden]{display:block}
}
/* the sticky nav's CTA inherited the browser serif (census 2026-09-06): give the nav the page family */
.nav-inner,.nav-inner a{font-family:"Geist","Helvetica Neue",Arial,sans-serif}
/* ---- Semantic spine 2026-09-06: the day title is an <h4> wrapping the disclosure button; the row div
   is the grid (rules above renamed from .rp-itin-day-toggle). Days are an <ol>; the list label is a <p>. */
#programs .rp-itin-days,#programs ol.rp-itin-days{list-style:none;margin:0;padding:0}
#programs li.rp-itin-day{list-style:none;margin:0}
#programs .rp-itin-day .rp-itin-accordion-heading{margin:0;padding:0;font:inherit;line-height:inherit;color:inherit;grid-column:auto;grid-row:auto;display:block}
#programs .rp-itin-day .rp-itin-day-toggle{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:4px}
#programs .rp-itin-day .rp-itin-day-toggle:focus-visible{outline:3px solid rgba(30,107,135,.35);outline-offset:3px}
#programs .rp-itin-day-row{cursor:pointer}
#programs .rp-itin-shell--library .rp-itin-day-heading .rp-itin-days-label{margin:0}
/* ===== 2026-09-06 stylesheet pass on the outside review (Shayne: "I default to all of your recommendations") ===== */
/* Primary buttons: white on #CD6414 measured 3.87:1 (fails AA for button-size text); #B5570F is 4.84:1. */
.rp-country-hub .cta-o,.nav-inner .cta-o,.rp-country-hub .rp-itin-choose,.rp-country-hub .au-choose,#rp-quote-form button[type="submit"],.rqf-submit,#rqf-next{background:#B5570F!important;color:#fff!important}
/* 2026-09-06 evening: #rqf-next (Continue) was the one primary button these two rules did not name, so it kept the donor inline #CD6414. */
.rp-country-hub .cta-o:hover,.nav-inner .cta-o:hover,.rp-country-hub .rp-itin-choose:hover,.rp-country-hub .au-choose:hover,#rp-quote-form button[type="submit"]:hover,.rqf-submit:hover,#rqf-next:hover{background:#9A4A0C!important}
.pcard:hover .pcard-cta{color:#B5570F}
/* Links inside running text are underlined; buttons styled as links are not. */
.rp-country-hub p a:not(.cta-o):not(.rp-itin-choose):not(.au-choose), .rp-country-hub li a:not(.cta-o) {text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
/* Hero standfirst on the standfirst tier (the builder inlines 1.02rem, which renders 18.88px). */
#rp-hero > div:nth-of-type(2) > p:first-of-type[style*="font-size:1.02rem"],#rp-hero p[style*="font-size:1.02rem"]{font-size:16.5px!important}  /* out-specifies the older 1.18rem hero rule */
/* A pricing tile whose value is a phrase ("Group quote") is a supporting heading, not a figure. */

/* the itinerary route eyebrow used a fourth grey (#8A939B); the page CSS still carries that rule, so this out-specifies it */
#programs .rp-itin-route{color:#5c6b75!important}
/* Shayne, 2026-09-06: NO underlines in the header. Hero links keep their white bold treatment only.
   The proposal band keeps the safety band's half-strength underline. */
#rp-hero a, #rp-hero p a {text-decoration:none!important}
#quote a{text-decoration-color:rgba(255,255,255,.55);text-decoration-thickness:1px;text-underline-offset:3px}

/* ===== 2026-09-06 evening: print books (Shayne: "90% fine; less bold lines and repetition"). Every heavy
   rule between blocks drops to a 1px hairline; the tone strips keep their colour bars. In the itinerary
   book the "Program at a glance" page no longer repeats the cover's lede and photograph. Appended per the
   sheet's ADD convention; folded into the rules above in the consolidation pass. ===== */
@media print{
  #programs .rp-itin-print-letterhead{border-bottom-width:1px}
  #programs .rp-itin-title{border-bottom-width:1px}
  
  
  
  
  
  
  
  #programs[data-print-mode="program"] .rp-print-overview-subtitle,#programs[data-print-mode="program"] .rp-print-overview-head img{display:none}
  #programs[data-print-mode="program"] .rp-print-overview-head{grid-template-columns:1fr}
  
}

#programs .rp-itin-shell--library>.rp-itin-map>svg.rp-itin-map-frame{display:none}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(1):checked ~ .rp-itin-map>svg.rp-itin-map-frame--for-1{display:block}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(2):checked ~ .rp-itin-map>svg.rp-itin-map-frame--for-2{display:block}
#programs .rp-itin-shell--library>.rp-itin-radio:nth-of-type(3):checked ~ .rp-itin-map>svg.rp-itin-map-frame--for-3{display:block}

/* 320px: twelve month cells cannot hold 12px letter-spaced caps (Ghana, 2026-09-07) */
@media (max-width:360px){.rp-season-ruler{gap:1px!important;}.rp-season-ruler span{font-size:8px!important;letter-spacing:0!important;}}
/* 320px: the who-handles-what table scrolls inside its wrapper instead of widening the page (Andorra, 2026-09-07) */
.handoff-matrix{overflow-x:auto;-webkit-overflow-scrolling:touch;}


/* 320px: route-figure marker labels drawn past the viewBox pushed the page wide (Ghana, 2026-09-07) */
#route figure svg{overflow:hidden;}
@media print{#programs .rp-print-page{break-after:page;page-break-after:always;min-height:8.55in} #programs .rp-print-page:last-child{break-after:auto;page-break-after:auto} #programs .rp-print-destination-cover{min-height:7.6in} #programs .rp-print-days-page{min-height:0} #programs .rp-print-day-page-head{break-after:avoid;page-break-after:avoid} #programs .rp-print-eyebrow{margin:0 0 7px;color:var(--itin-teal);font-size:7.8pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase} #programs .rp-print-page h1,#programs .rp-print-page h2,#programs .rp-print-page h3{font-family:Arial,'Helvetica Neue',sans-serif;color:var(--itin-navy)} #programs .rp-print-page h1{max-width:6.5in;margin:.1in 0 8px;font-size:26pt;line-height:1.03;letter-spacing:-.035em} #programs .rp-print-page h2{margin:0 0 6px;font-size:20pt;line-height:1.08;letter-spacing:-.025em} #programs .rp-print-page h3{margin:0;font-size:11pt;line-height:1.2} #programs .rp-print-deck{max-width:6.25in;margin:0 0 .25in;color:#4c5f69;font-size:10pt;line-height:1.45} #programs .rp-print-rule{height:3px;margin:0 0 .24in;background:var(--itin-teal)} #programs .rp-print-section-intro{max-width:6.7in;margin:0 0 .22in;color:#53656e;font-size:9.4pt;line-height:1.45} #programs .rp-print-comparison{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.6pt;line-height:1.35} #programs .rp-print-comparison col:first-child{width:1.12in} #programs .rp-print-comparison th,#programs .rp-print-comparison td{vertical-align:top;padding:7px 8px;border-bottom:1px solid #cad5d9;text-align:left} #programs .rp-print-comparison thead th{padding-top:9px;padding-bottom:9px;border-top:2px solid var(--itin-navy);border-bottom:2px solid var(--itin-navy);color:var(--itin-navy);font-size:9pt} #programs .rp-print-comparison tbody th{color:var(--itin-teal);font-size:8.4pt} #programs .rp-print-comparison td strong{display:block;color:var(--itin-navy)} #programs .rp-print-source-note{margin:10px 0 0;color:#5c6b75;font-size:7.8pt;line-height:1.4} #programs .rp-print-policy-list{display:grid;grid-template-columns:1fr 1fr;column-gap:.32in;margin-top:.18in;border-top:2px solid var(--itin-navy)} #programs .rp-print-policy-item h3{margin-bottom:3px;font-size:9.4pt} #programs .rp-print-policy-item p{margin:0;color:#4f616b;font-size:8.6pt;line-height:1.42} #programs .rp-print-reading-note{margin-top:.22in;padding:10px 0;border-block:2px solid var(--itin-teal);color:var(--itin-navy);font-size:9pt;line-height:1.45} #programs .rp-print-overview-head{display:grid;grid-template-columns:1fr 2.15in;gap:.28in;align-items:end;padding-bottom:.2in;border-bottom:3px solid var(--itin-teal)} #programs .rp-print-overview-head img{display:block;width:2.15in;height:1.32in;object-fit:cover} #programs .rp-print-overview-subtitle{margin:5px 0 0;color:#52656f;font-size:10pt;line-height:1.4} #programs .rp-print-overview-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(1.4in,1fr));gap:0;margin:.16in 0 .2in;border-block:1px solid #cbd6da} #programs .rp-print-overview-fact{padding:8px 9px;border-right:1px solid #cbd6da} #programs .rp-print-overview-fact:last-child{border-right:0} #programs .rp-print-overview-fact strong{display:block;margin-bottom:2px;color:var(--itin-navy);font-size:8.4pt} #programs .rp-print-overview-fact span{color:#53656e;font-size:8.4pt;line-height:1.3} #programs .rp-print-route-strip{display:flex;align-items:center;margin:.18in 0 .24in;padding:0;list-style:none} #programs .rp-print-route-strip li{position:relative;flex:1;padding:13px 3px 0;border-top:2px solid #98adb6;color:var(--itin-navy);font-size:8pt;text-align:center} #programs .rp-print-route-strip li:before{content:"";position:absolute;top:-4px;left:50%;width:6px;height:6px;border-radius:50%;background:var(--itin-teal);transform:translateX(-50%)} #programs .rp-print-ribbon-block{margin-top:.16in} #programs .rp-print-ribbon-label{margin:0 0 5px;color:#5c6b75;font-size:8pt;font-weight:700} #programs .rp-print-ribbon{display:grid;gap:3px} #programs .rp-print-ribbon-cell{min-width:0;padding:7px 2px 6px;border-top:4px solid #9aacb4;background:#edf2f3;color:#29414c;font-size:7.2pt;line-height:1.2;text-align:center} #programs .rp-print-ribbon-cell strong{display:block;color:var(--itin-navy);font-size:7.6pt} #programs .rp-print-overview-note{display:grid;grid-template-columns:1.15in 1fr;gap:.12in;margin-top:.25in;padding-top:.13in;border-top:1px solid #cbd6da} #programs .rp-print-overview-note strong{color:var(--itin-teal);font-size:8.4pt} #programs .rp-print-overview-note span{color:#455a64;font-size:8.6pt} #programs .rp-print-day-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:.2in;margin:0 0 .16in;padding:0 0 8px;border-bottom:3px solid var(--itin-teal)} #programs .rp-print-day-page-head p{margin:0;color:#647780;font-size:8pt} #programs .rp-print-day-list{display:block} #programs .rp-print-day{display:grid;grid-template-columns:minmax(0,1fr) 2.35in;column-gap:.22in;padding:.12in 0;border-bottom:1px solid #cbd6da;break-inside:auto} #programs .rp-print-day-title,#programs .rp-print-time,#programs .rp-print-learning,#programs .rp-print-day-rail h4{break-inside:avoid;page-break-inside:avoid} #programs .rp-print-rail-item{orphans:2;widows:2} #programs .rp-print-rail-item strong{break-after:avoid;page-break-after:avoid} #programs .rp-print-day-title,#programs .rp-print-day-rail h4{break-after:avoid;page-break-after:avoid} #programs .rp-print-day-title{orphans:3;widows:3} #programs .rp-print-day--compact{break-inside:avoid-page;page-break-inside:avoid} #programs .rp-print-overview{break-after:auto;page-break-after:auto;min-height:0} #programs .rp-print-overview+.rp-print-days-page .rp-print-day-page-head{margin-top:.3in} #programs .rp-print-day:last-child{border-bottom:0} #programs .rp-print-day-title{grid-column:1/-1;display:grid;grid-template-columns:.8in minmax(0,1fr) minmax(1.35in,2.35in);gap:.1in;align-items:baseline;margin-bottom:7px} #programs .rp-print-day-title>*{min-width:0} #programs .rp-print-day-index{color:var(--itin-teal);font-size:7.6pt;font-weight:700;text-transform:uppercase;letter-spacing:.05em} #programs .rp-print-day-title h3{font-size:12pt} #programs .rp-print-day-tags{color:#62747d;font-size:8pt;text-align:right;overflow-wrap:anywhere} #programs .rp-print-chronology{display:grid;gap:5px} #programs .rp-print-time{display:grid;grid-template-columns:.72in 1fr;gap:7px;align-items:start} #programs .rp-print-time strong{color:var(--itin-navy);font-size:8.4pt} #programs .rp-print-time span{color:#425761;font-size:9.6pt;line-height:1.42} #programs .rp-print-learning{display:grid;grid-template-columns:.72in 1fr;gap:7px;margin-top:7px;padding-top:6px;border-top:1px solid #dbe3e6} #programs .rp-print-learning strong{color:var(--itin-teal);font-size:8.4pt} #programs .rp-print-learning span{color:#425761;font-size:9.2pt;line-height:1.42} #programs .rp-print-day-rail{padding-left:.15in;border-left:2px solid #d7e2e5} #programs .rp-print-day-rail h4{margin:0 0 5px;color:var(--itin-teal);font-size:8pt;text-transform:uppercase;letter-spacing:.06em} #programs .rp-print-rail-item{margin:0 0 6px;color:#4a5e68;font-size:8.4pt;line-height:1.36} #programs .rp-print-rail-item:last-child{margin-bottom:0} #programs .rp-print-rail-item strong{display:block;margin-bottom:1px;color:var(--itin-navy);font-size:8.2pt} #programs .rp-print-destination-cover{position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--itin-navy);color:#fff} #programs .rp-print-destination-cover>img{position:absolute;inset:0;width:100%;height:4.3in;object-fit:cover} #programs .rp-print-destination-cover:after{content:"";position:absolute;inset:1.9in 0 auto;height:2.4in;background:linear-gradient(to bottom,rgba(0,43,78,0),rgba(0,43,78,.92))} #programs .rp-print-destination-copy{position:relative;z-index:1;padding:.35in .34in .45in} #programs .rp-print-destination-cover .rp-print-eyebrow{color:#9ed5e2} #programs .rp-print-destination-cover h1{max-width:6.4in;margin:0 0 9px;color:#fff;font-size:30pt} #programs .rp-print-destination-cover .rp-print-deck{max-width:5.8in;margin-bottom:.22in;color:#e4eef1} #programs .rp-print-cover-facts{display:flex;gap:.28in;padding-top:.16in;border-top:1px solid rgba(255,255,255,.38)} #programs .rp-print-cover-facts span{display:block;color:#cbdde3;font-size:8.4pt} #programs .rp-print-cover-facts strong{display:block;margin-bottom:2px;color:#fff;font-size:10pt} #programs .rp-print-cover-route{margin:.2in 0 0;color:#fff;font-size:9.5pt;font-weight:700} #programs .rp-print-action h2{max-width:6.5in;font-size:24pt} #programs .rp-print-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .34in;margin-top:.22in;border-top:2px solid var(--itin-navy)} #programs .rp-print-action-grid>div{padding:12px 0;border-bottom:1px solid #cbd6da} #programs .rp-print-action-grid h3{margin-bottom:4px;font-size:10pt} #programs .rp-print-action-grid p{margin:0;color:#4b5e68;font-size:9.4pt;line-height:1.45} #programs .rp-print-cta{display:flex;justify-content:space-between;align-items:center;gap:.2in;margin-top:.28in;padding:.16in .18in;background:var(--itin-navy);color:#fff} #programs .rp-print-cta strong{font-size:12pt} #programs .rp-print-cta span{font-size:10pt;text-align:right} #programs .rp-print-policy-action{display:grid;grid-template-columns:.9in 1fr;gap:.14in;margin-top:.16in;padding:.12in 0;border-top:2px solid var(--itin-navy);color:var(--itin-navy)} #programs .rp-print-policy-action strong{font-size:9.2pt} #programs .rp-print-policy-action span{font-size:8.8pt} #programs .rp-print-rule{height:1px} #programs .rp-print-comparison thead th{border-top-width:1px;border-bottom-width:1px} #programs .rp-print-policy-list,#programs .rp-print-action-grid,#programs .rp-print-policy-action{border-top-width:1px} #programs .rp-print-reading-note{border-block-width:1px} #programs .rp-print-overview-head,#programs .rp-print-day-page-head{border-bottom-width:1px} #programs .rp-print-route-strip li{border-top-width:1px} #programs .rp-print-day-rail{border-left-width:1px} #programs .rp-print-policy-action span,#programs .rp-print-cta span{overflow-wrap:normal}}
/* 2026-09-10 standfirst + cross-link typography */

/* 1. THE STANDFIRST UNDER EACH H2 — the paragraph sits in two different places depending on the
   section: a SIBLING of .section-heading in #route/#different, and a CHILD of it, after the h2,
   in #pricing/#curriculum/#fit. My first rule only had the sibling case, so three sections stayed
   at 16px/#5C6B75 while two were 16.5px/#2C3A43 — the lighter, harder-to-read ones Quintin kept
   seeing. Both shapes now get the same treatment, and a measure that stops the line running long. */
.rp-country-hub .section-shell .section-heading + p,
.rp-country-hub .section-shell .section-heading > p,
.rp-country-hub .content-split > div > p:first-of-type{
  font-size:16.5px!important;line-height:1.6!important;color:#2C3A43!important;max-width:64ch;}

/* 2. "Also on this page" — a block that spans its grid parent, not a flex child that auto-places
   over the itinerary cards. No border-top (a separator is already there) and no border-bottom on
   the anchor (a live underline already wins, so the border drew a second line under it). */
.rp-country-hub p.rp-xlink{
  grid-column:2;margin:20px 0 0!important;
  font-size:14.5px!important;line-height:1.7!important;color:#5C6B75!important;max-width:68ch;}
.rp-country-hub p.rp-xlink a{color:#1E6B87;text-underline-offset:3px;text-decoration-thickness:1px;}
.rp-country-hub p.rp-xlink a:hover,.rp-country-hub p.rp-xlink a:focus-visible{color:#14526A;}

/* 3. ON A DARK SECTION the link was #1E6B87 on #002B4E — around 1.7:1, well under the 4.5:1 floor
   and the reason it reads as unreadable. Light enough to pass on navy, and the label with it. */
.rp-country-hub .beyond-split p.rp-xlink,
.rp-country-hub [style*="002B4E"] p.rp-xlink,
.rp-country-hub .au-dark p.rp-xlink{color:#B9CBD8!important;}
.rp-country-hub .beyond-split p.rp-xlink a,
.rp-country-hub [style*="002B4E"] p.rp-xlink a,
.rp-country-hub .au-dark p.rp-xlink a{color:#8FCBE0;}
.rp-country-hub .beyond-split p.rp-xlink a:hover,
.rp-country-hub [style*="002B4E"] p.rp-xlink a:hover,
.rp-country-hub .au-dark p.rp-xlink a:hover{color:#C7E5F2;}

/* 4. "What applies across every itinerary" — every cell carried border-right AND border-bottom,
   including the last column and the final row, so the grid ended on trailing rules with nothing
   after them. That is the unclosed, ragged edge. Drawing the lines as a 1px GAP with the rule
   colour behind cannot leave a trailing edge whatever the cell count, and it prints the same. */
.rp-country-hub .rp-itin-planning{gap:0!important;background:transparent!important;}
.rp-country-hub .rp-itin-planning > div{
  background:transparent!important;padding:14px 16px;
  border:0!important;
  border-right:1px solid rgba(0,43,78,.14)!important;
  border-bottom:1px solid rgba(0,43,78,.14)!important;}
.rp-country-hub .rp-itin-planning > div:nth-child(4n){border-right:0!important;}
.rp-country-hub .rp-itin-planning dd{font-size:14.5px;line-height:1.55;}

/* 5. Table body copy, one notch down from the 16px it was — still comfortably above the
   readability floor, and it stops the includes/drivers tables competing with the prose. */
.rp-country-hub #pricing table td{font-size:15.5px;line-height:1.55;}

/* 6. The fit rows ran the full column width, so a line could reach well past a comfortable
   measure. Same 64ch the prose now uses. */
.rp-country-hub #fit li,.rp-country-hub #fit td,.rp-country-hub .fit-grid li{
  max-width:65ch;}

/* 2026-09-10 alignment pass */
/* The country line carried padding-left:9px while the days line and the title carried 0, so the
   three stacked hero lines did not share a left edge. Measured: 433 / 433 / 433 once removed. */
.rp-country-hub .rp-itin-summary .rp-itin-kicker{padding-left:0;}

/* "10+ students" sits beside pill-shaped tags. The row was align-items:normal, so the plain span
   stretched to the pill's 39px and its text sat at the top while the pill text was centred.
   Centring the row lets the span keep its own height and share the pills' optical line. */
.rp-country-hub .rp-itin-meta{align-items:center;}

/* Start the compare box level with the top of the first itinerary CARD, not its title text.
   Measured at 1440 on three hubs — mongolia +32, iceland +31, bosnia +32 from the rail top. */
#programs .rp-itin-shell--library > details.rp-itin-compare{margin-top:32px;}

.rp-country-hub .section-heading>h2:not(:last-child){margin-bottom:10px;}
#programs .rp-itin-shell--library>.rp-itin-title h2{margin-bottom:22px;}
#safety .safety-shell h2{margin-bottom:22px;}
#different .promise-band>div{gap:0!important;}
#different .promise-band>div>h2{margin-bottom:22px;}
#different .promise-band>div>.capsule{margin-bottom:clamp(18px,2.5vw,26px);}
#contact .h2-compact{margin-bottom:10px;}
#quote .h2-invert{margin-bottom:8px;}
.rp-country-hub .other-destinations>h2{margin-bottom:10px;}
#faq>h2:not([class])+.capsule, #faq>h2:not([class])+div{margin-top:22px;}
#different .promise>li{border-top:0!important;}
#pricing .section-heading+div:not([class]){display:flex!important;flex-direction:column;gap:0!important;margin:0 0 clamp(20px,2.6vw,30px)!important;}
#pricing .section-heading+div:not([class])>div{padding:20px 0!important;border-radius:0!important;background:transparent!important;}
#pricing .section-heading+div:not([class])>div:first-child{padding-top:0!important;}
#pricing .section-heading+div:not([class])>div>p:first-child{font-size:clamp(1.4rem,1.8vw,1.65rem)!important;font-weight:500!important;letter-spacing:-.01em;line-height:1.15!important;}
#pricing .section-heading+div:not([class])>div:first-child>p:first-child{font-weight:600!important;}
#pricing .section-heading+div:not([class])>div>p+p{margin:6px 0 0!important;font-size:15.5px!important;line-height:1.5!important;max-width:46ch;}
@media (min-width:961px){
#fit .section-shell:has(>.section-heading+div:not([class])){display:grid;grid-template-columns:minmax(0,9fr) minmax(0,11fr);column-gap:clamp(40px,5vw,80px);align-items:start;}
#fit .section-shell:has(>.section-heading+div:not([class]))>.section-heading{grid-column:1;grid-row:1 / span 6;margin-bottom:0;}
#fit .section-shell:has(>.section-heading+div:not([class]))>div:not(.section-heading){grid-column:2;align-items:flex-start!important;}
#fit .section-shell>.section-heading+div:not([class]){border-top:0!important;padding-top:0!important;}
#pricing .section-shell:has(>.section-heading+div:not([class])){display:grid;grid-template-columns:minmax(0,9fr) minmax(0,11fr);grid-template-rows:auto auto auto auto auto 1fr;column-gap:clamp(40px,5vw,80px);row-gap:0;align-items:start;}
#pricing .section-shell:has(>.section-heading+div:not([class]))>.section-heading{display:contents;}
#pricing .section-shell:has(>.section-heading+div:not([class]))>.section-heading>h2{grid-column:1;grid-row:1;margin:0 0 22px!important;}
#pricing .section-shell:has(>.section-heading+div:not([class]))>.section-heading>p{grid-column:1;margin:0!important;}
#pricing .section-shell:has(>.section-heading+div:not([class]))>.section-heading>p+p{margin-top:12px!important;}
#pricing .section-shell>.section-heading+div:not([class]){grid-column:2;grid-row:2 / span 5;margin:4px 0 0!important;}
#pricing .section-shell:has(>.section-heading+div:not([class]))>*:not(.section-heading):not(.section-heading+div){grid-column:1 / -1;margin-top:clamp(36px,4vw,56px);}
}
#programs .rp-itin-shell:not(.rp-itin-shell--library)>.rp-itin-title>h2{margin-bottom:4px;}
#route>h2.h2-section{margin-bottom:2px;}
#fit>div>h2.h2-section{margin-bottom:10px;}
#patrick .h2-compact{margin-bottom:10px;}
#teacher-support>div>h2.h2-minor{margin-bottom:2px;}
#faq>h2.h2-section{margin-bottom:4px;}
#season figure>div{overflow-x:clip;}
#programs .rp-itin-summary>p:not([class])~p:not([class]){grid-column:1 / -1;margin-left:24px;margin-right:24px;}
.rp-country-hub{font-family:'Geist','Helvetica Neue',Arial,sans-serif;font-size:16.5px;line-height:1.6;color:#2C3A43;--rp-shell:1380px;}
  .rp-country-hub h1, .rp-country-hub h2, .rp-country-hub h3, .rp-country-hub h4, .rp-country-hub h5, .rp-country-hub h6{font-family:'Geist','Helvetica Neue',Arial,sans-serif;}@media (max-width:640px){
    .rp-country-hub details .g3{padding-left:0 !important;}}

  .section-shell, .au-shell{max-width:var(--rp-shell);margin-inline:auto;padding:clamp(40px,5vw,64px) var(--rp-gutter);box-sizing:border-box;}
  .section-heading h2, .au-title-row h2, .faq-shell>h2{margin:0;font-family:'IBM Plex Serif',Georgia,serif;font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.08;font-weight:600;letter-spacing:-.02em;color:#002b4e;}
  .section-heading p, .au-title-row p{margin:0;max-width:74ch;color:#5C6B75;}
  .au-lead, .price-cta{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#002b4e;color:#fff;border-radius:8px;padding:18px 20px;}
  .au-lead>div, .price-cta>div{display:flex;flex-direction:column;gap:2px;}
  .au-lead span, .price-cta span{font-size:13.5px;color:rgba(255,255,255,.75);}
  .au-lead .cta-o, .price-cta .cta-o{background:#CD6414;color:#fff;font-size:13.5px;font-weight:700;padding:12px 18px;border-radius:4px;white-space:nowrap;}
  .au-includes>p{margin:0;font-size:13.5px;color:#5C6B75;}@media (max-width:720px){
    .au-lead, .price-cta{flex-direction:column;align-items:stretch;}
    .au-lead .cta-o, .price-cta .cta-o{text-align:center;}}
  .rp-itin-tab{font:inherit;flex:0 0 auto;border:0;border-bottom:3px solid transparent;background:transparent;color:#3D4F5F;font-size:13.5px;font-weight:700;padding:10px 2px 12px;cursor:pointer;}
  .rp-itin-day-heading h3, .rp-itin-day-heading h4{margin:0;color:#002b4e;font-size:1.15rem;}
  .rp-itin-day-top{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(0,43,78,.12);}
  .rp-itin-day-top span:first-child{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#A64F0E;}
  .rp-itin-day-top span:last-child{font-size:12px;font-weight:700;color:#8A9199;font-variant-numeric:tabular-nums;}
  .rp-itin-day img{width:100%;height:120px;object-fit:cover;border-radius:8px;display:block;}.rp-itin-day h3, .rp-itin-day h4{margin:0;font-family:'Geist','Helvetica Neue',Arial,sans-serif;font-weight:700;font-size:1.15rem;line-height:1.3;letter-spacing:-.01em;color:#002b4e;}
  .rp-itin-lead .cta-o{background:#CD6414;color:#fff;font-size:13.5px;font-weight:700;padding:12px 18px;border-radius:4px;white-space:nowrap;}@media (max-width:640px){.rp-itin-lead .cta-o{text-align:center;}}

.rp-itin-day img{order:-1;height:150px;border-radius:12px 12px 0 0;margin:0;}
.rp-itin-day-top{position:absolute;top:10px;left:10px;right:10px;border-bottom:0;padding-bottom:0;}
.rp-itin-day-top span, .rp-itin-day-top span:first-child{background:#1A2B49;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:#fff;box-shadow:none;}

.rp-itin-meta span{background:transparent;padding:4px 0;color:#3D4F5F;font-weight:600;}
.section-heading p{margin:0;max-width:62ch;font-size:16px;line-height:1.6;color:#5C6B75;}

.eyebrow, .rp-itin-kicker{display:inline-block;background:#FCD34D;color:#1A2B49;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;width:fit-content;}

.curriculum-grid p, .rp-itin-day p{font-size:16px;line-height:1.6;color:#5C6B75;}

.rp-country-hub a.cta-secondary, .btn-secondary{display:inline-block;border:1px solid rgba(0,43,78,.35);border-radius:999px;padding:10px 20px;color:#002b4e;font-weight:600;text-decoration:none;}

.support-grid>div, .content-split>div, .communication-note, .heritage-note{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;}

.price-cta, .au-lead, .rp-itin-lead{border-radius:14px;padding:22px 26px;}
.au-lead .cta-o, .price-cta .cta-o, .rp-itin-lead .cta-o{border-radius:999px;padding:13px 24px;}
.cur-feature h3, .cur-band h3{margin:0;font-family:'Geist','Helvetica Neue',Arial,sans-serif;font-weight:700;letter-spacing:-.015em;color:#002b4e;line-height:1.15;}
.cur-band p{margin:0;font-size:16px;line-height:1.6;color:#3D4F5F;max-width:36ch;}
.rp-itin-summary p{font-size:16px;line-height:1.6;color:#4A5A66;max-width:58ch;}
.cur-feature h3, .cur-band h3{font-family:'IBM Plex Serif',Georgia,serif;font-weight:500;letter-spacing:-.01em;}
.au-lead .cta-o, .price-cta .cta-o, .rp-itin-lead .cta-o, .cta-o{border-radius:4px;padding:13px 24px;}

.rp-itin-day h3, .rp-itin-day h4{font-family:'IBM Plex Serif',Georgia,serif;font-weight:500;font-size:1.2rem;line-height:1.3;letter-spacing:-.01em;color:#002b4e;}
.rp-itin-day-heading h3, .rp-itin-day-heading h4{font-family:'IBM Plex Serif',Georgia,serif;font-weight:500;font-size:1.4rem;}
.rp-itin-day img{height:170px;}
.cur-feature h3, .cur-band h3, .rp-itin-summary h3, .support-grid h3, .fit-grid h3, .content-split h3, .communication-note h3{font-weight:500;}
.cta-o, .rp-itin-choose, .au-choose{font-size:16px!important;}
.section-heading p, .rp-itin-title p{font-size:16px;}
#curriculum p, .cur-band p, .cur-feature p{color:#5C6B75;}

.rp-country-hub .beyond-split p + p, .rp-country-hub #faq details p + p{margin-top:14px;}

/* ===== 2026-09-15 Shayne (Fiji review): hero text all white. Standfirst, second paragraph, breadcrumb row and its links. */
#rp-hero p[style*="max-width:54ch"]{color:#fff!important}
#rp-hero div[style*="font-size:12px"],#rp-hero div[style*="font-size:12px"] a{color:#fff!important}

/* ===== 2026-09-16 UNIFICATION PASS (Boston hub, measured on the staging page) =====
   Principle: same role, same treatment. Every rule corrects one census stray. */
#faq details>p{font-size:16px!important;line-height:1.6!important;}
#faq summary h3{font-size:16.5px!important;font-weight:700!important;}
#faq{padding-block:clamp(50px,6vw,80px)!important;}
#boston-options summary::before{color:#1E6B87;}
#boston-options summary:focus-visible{outline:2px solid #CD6414;outline-offset:3px;}
#boston-options>h3{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem;font-weight:500;letter-spacing:-.01em;color:#002b4e;margin:0 0 10px;}
#rqf-progress{background:#B5570F!important;}
#programs .rp-itin-choose{border-radius:4px;}
#contact a[href^="tel:"]{color:#1E6B87!important;}
#safety .rp-safety-controls>li{display:grid;grid-template-columns:36px 1fr;column-gap:12px;align-items:start;}
#safety .rp-safety-controls>li>span:first-child{justify-self:center;}
#safety div[style*="auto-fit"]{column-gap:clamp(40px,5vw,80px)!important;}
@media (min-width:961px){
  #pricing .content-split{grid-template-columns:minmax(0,9fr) minmax(0,11fr);gap:clamp(40px,5vw,80px);}
}
#different .promise-band{column-gap:clamp(40px,5vw,80px)!important;}
#quote .split{column-gap:clamp(40px,5vw,80px)!important;}
#fit .section-shell>div[style*="border-top"]{align-items:flex-start!important;}
.rp-country-hub p a:not(.cta-o):not(.rp-itin-choose):not(.au-choose),
.rp-country-hub li a:not(.cta-o){text-decoration:none;font-weight:600;}
.rp-country-hub p a:not(.cta-o):not(.rp-itin-choose):not(.au-choose):hover,
.rp-country-hub p a:not(.cta-o):not(.rp-itin-choose):not(.au-choose):focus-visible,
.rp-country-hub li a:not(.cta-o):hover,
.rp-country-hub li a:not(.cta-o):focus-visible{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
.rp-country-hub #safety p a,.rp-country-hub #quote p a{text-decoration:none;font-weight:600;}
.rp-country-hub #safety p a:hover,.rp-country-hub #safety p a:focus-visible,
.rp-country-hub #quote p a:hover,.rp-country-hub #quote p a:focus-visible{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
#programs{--itin-line:rgba(0,43,78,.12);}
.rp-country-hub [style*="rgba(0,43,78,.1)"],.rp-country-hub [style*="rgba(0,43,78,.13)"],
.rp-country-hub [style*="rgba(0,43,78,.14)"],.rp-country-hub [style*="rgba(0,43,78,.16)"]{border-color:rgba(0,43,78,.12)!important;}
.rp-country-hub [style*="rgba(0,43,78,.35)"]{border-color:rgba(0,43,78,.28)!important;}
.au-li4,.communication-note,.faq-shell details,.other-destinations,
.rp-country-hub .rp-itin-planning>div{border-color:rgba(0,43,78,.12)!important;}
.rp-itin-tabs{border-bottom-color:rgba(0,43,78,.12);}
.rqf input,.rqf select,.rqf textarea,
#rp-quote-form input[type="text"],#rp-quote-form input[type="email"],#rp-quote-form input[type="tel"],
#rp-quote-form select,#rp-quote-form textarea{border-color:rgba(0,43,78,.28);}
.rp-country-hub a.cta-secondary,.btn-secondary{border-color:rgba(0,43,78,.28);}
#programs .rp-itin-compare{border-radius:4px;}
#rp-hero .cta-o,#contact .cta-o,.price-cta .cta-o,#programs .rp-itin-choose,.rp-itin-title-cta{padding:13px 24px!important;}
.price-cta{border-radius:12px!important;}
#rp-hero [style*="FBBC04"]{color:#FCD34D!important;}
#rp-hero div[style*="flex-wrap"]>a,
#rp-hero div[style*="flex-wrap"]>span{color:#fff!important;}
#rp-hero>div:nth-of-type(2)>p:first-of-type+p{color:#fff!important;max-width:48ch!important;}
.rp-country-hub .rp-itin-planning dd{font-size:13.5px;}
.rp-country-hub p.rp-xlink{font-size:13.5px!important;}
#programs .rp-itin-day .rp-itin-day-toggle:focus-visible,
#programs .rp-itin-day-toggle:focus-visible,
#programs .rp-itin-expand-all:focus-visible{outline:2px solid #CD6414;outline-offset:3px;}


/* ===== 2026-09-16 RULE 26 - COLOR COLLAPSE + RHYTHM (amended before publish) =====
   Ruling (Shayne, 2026-09-16), amended after a WCAG check and a live re-measure.
   Roles kept - light: #2C3A43 body . #002B4E headings . #5C6B75 muted . #1E6B87 links
                       #A64F0E kickers . #2E6B4F included-green . #9C2F2F negative/error
                dark: #fff . rgba(255,255,255,.84) muted-white . #85BDD3 light-teal
                      #FCD34D stars . #F7B267 light-orange-on-dark (RETAINED, see 26c)
                states: #CD6414 focus/hover
   TEXT COLOUR ONLY. background:, border: and --c: tokens keep their own values - the 191
   border:1.5px solid #B6E7E0 safety circles and .rp-itin-choose background:#1A2B49 stay. */

/* 26a - #3D4F5F -> #2C3A43 body. */
.rp-itin-tab{color:#2C3A43;}
.rp-itin-meta span{color:#2C3A43;}
.cur-band p{color:#2C3A43;}

/* 26b - #1A2B49 -> #002B4E headings. color only; the two background uses stay. */
.rp-itin-meta span:last-child{color:#002B4E;}
.rp-itin-kicker{color:#002B4E;}
.eyebrow{color:#002B4E;}

/* 26c - #F7B267 NOT FOLDED. It is the 12px duration-and-price kicker over the itinerary
   photo, on navy. #F7B267 is 7.91:1 on #002B4E; #CD6414 is 3.73:1, under the 4.5:1 AA
   floor for normal-size text. Retained as a justified light-orange-on-dark role. */

/* 26d - #B6E7E0 -> #85BDD3 light-teal, as TEXT only. */
.rp-country-hub #safety a{color:#85BDD3;}

/* 26e - NEGATIVE/ERROR is one role. #9C2F2F is the "Probably not a fit" heading and icon;
   #B3382C was a second red used only by .rqf-err. Collapsed to #9C2F2F (7.34:1 on white
   vs 5.97:1), named by role, not by existing hex. */
.rqf-err{color:#9C2F2F;}

/* 26f - white alphas .58/.7/.72/.75/.78/.82/.85/.88 -> .84 muted-white. */
#safety p,
.safety-shell > div:first-child > p,
.safety-shell p,
.safety-stats span,
.au-lead span,
.price-cta span,
#programs .rp-itin-summary--cover>.rp-itin-kicker{color:rgba(255,255,255,.84);}
#programs .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3) small{color:rgba(255,255,255,.84);}

/* 26g - inline style= attributes across the 39 US pages. Only !important reaches an inline
   declaration. Scoped to color: so backgrounds/borders are untouched; the closing paren
   stops .7 substring-matching .78. */
.rp-country-hub [style*="color:#3d4f5f" i],
a.navlink[style*="color:#3d4f5f" i]{color:#2C3A43!important;}
.rp-country-hub [style*="color:rgba(255,255,255,.58)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.7)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.72)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.75)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.78)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.82)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.85)" i],
.rp-country-hub [style*="color:rgba(255,255,255,.88)" i]{color:rgba(255,255,255,.84)!important;}

/* 26h - SECTION RHYTHM. The legacy tail rule .section-shell,.au-shell{padding:clamp(40px,
   5vw,64px)} sits after the 2026-09-05 clamp(50px,6vw,80px) and wins, so pricing,
   curriculum, safety and fit computed 64/64 while FAQ computed 80/80. Restated here, at
   the end, as padding-block only so the inline gutter is preserved. */
.section-shell{padding-block:clamp(50px,6vw,80px);}

/* 26i - FOURTH PROGRAM TAB. Tabs 1-3 select navy in the library shell; tab 4 fell through
   to the page-level teal rule. Library-scoped selector out-ranks it without !important. */
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(4):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(4),
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(5):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(5),
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(6):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(6){color:#fff;background:var(--itin-navy);border-color:var(--itin-navy);border-bottom-color:var(--itin-navy);box-shadow:0 8px 20px rgba(0,43,78,.22);}
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(4):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(4) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(5):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(5) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(6):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(6) small{color:rgba(255,255,255,.84);}


/* ===== 2026-09-16 RULE 27 - #boston-options moves OUT of the page =====
   The Boston page carried a private <style> block for this module. It sat after the
   external sheet and out-ranked it, which is how #3b6b7f survived rule 4. Moved here
   verbatim (with the palette corrections already applied at source) so the sheet owns
   the module; the page-side block is deleted in the same pass. */
#boston-options p{margin:0 0 12px;}
#boston-options details{border-top:1px solid rgba(0,43,78,.12);}
#boston-options summary{display:flex;gap:10px;list-style:none;}
#boston-options summary::-webkit-details-marker{display:none;}
#boston-options summary::before{content:"+";color:#1E6B87;flex:0 0 12px;}
#boston-options details[open]>summary::before{content:"−";}
#boston-options summary:focus-visible{outline:2px solid #CD6414;outline-offset:3px;}


/* ===== 2026-09-16 RULE 28 - COST BLOCK SIMPLIFIED =====
   Shayne: "way too much going on". #pricing measured 7 text colours and 7 type sizes
   across 44 text elements. The cause was not stray palette. It was (a) positional
   !important rules minting off-tier sizes, (b) seven competing .section-heading p size
   rules, (c) two semantic colours spent on table row headers. Target: 4 colours -
   navy headings and numbers, ink prose, teal link, white on dark - and 5 type sizes.
   Scoped to #pricing so no other section moves. */

/* 28a - stat captions. An inline font-size:13.5px was being beaten to 15.5px by
   #pricing .section-heading+div:not([class])>div>p+p{font-size:15.5px!important}.
   Back onto the 13.5px small tier, and muted grey folded to body ink, so each stat
   reads as one number and one sentence in one colour. */
#pricing .section-heading+div:not([class])>div>p+p{font-size:13.5px!important;color:#2C3A43!important;}

/* 28b - lead paragraphs computed 16.5px, which is the QUESTION tier. Body is 16px. */
#pricing .section-heading>p{font-size:16px!important;}

/* 28c - remaining muted prose in the block (the "Not included" line) to body ink. */
#pricing p[style*="color:#5C6B75" i]{color:#2C3A43!important;}

/* 28d - driver table row headers. "raises" and "lowers" are already carried by the
   words, so the orange/green pair spends two colours on nothing. This one is
   deliberately fleet-wide: 37 pages carry .rp-price-table--drivers. */
.rp-price-table--drivers tbody th[scope="row"].rp-effect-raises,
.rp-price-table--drivers tbody th[scope="row"].rp-effect-lowers{color:#2C3A43;}

/* 28e - includes/drivers table cells computed 15.5px, an off-tier size. It came from
   .rp-country-hub #pricing table td, which out-ranks the components own 16px rule
   (.rp-price-table--includes tbody td) on specificity. Onto the 16px body tier. */
.rp-country-hub #pricing table td{font-size:16px;}

/* 28f - the driver table row headers ("raises" / "lowers") were 12px, a tier used
   nowhere else in this block. Onto the 13.5px small tier. */
.rp-price-table--drivers tbody th[scope="row"]{font-size:13.5px;}

/* NOT TOUCHED, on purpose:
   - .rp-price-table thead th{font-size:1px} is a visually-hidden device on the
     "Included" / "What it covers" headers, not a type tier.
   - the five elements computing 16.5px inherit it from .rp-country-hub{font-size:16.5px},
     the hub-wide root. The type system calls body 16px while the actual inherited root
     is 16.5px. Changing the root reflows all 36 pages, so it needs Shaynes call. */

/* 28g - ONE ROW-HEADER TREATMENT (Shayne flagged it, 2026-09-16).
   Both pricing tables use tbody th[scope="row"] for the same job, but rendered as two
   different things: includes = sentence case 16px navy; drivers = UPPERCASE 12px with
   .06em tracking. The uppercase tag look was justified by the orange/green pair, and
   28d dropped that pair, so it was a second treatment doing no work. Matched to the
   includes headers. The label column grows 62px -> 88px because sentence-case 16px
   does not fit the old track, and wraps rather than clipping. */
.rp-price-table--drivers tbody th[scope="row"]{font-size:16px;text-transform:capitalize;letter-spacing:normal;width:88px;white-space:normal;}
.rp-price-table--drivers thead th:first-child{width:88px;}
/* the .rp-effect-* rules carry one extra class, so colour must be restated at that
   specificity or 28d keeps winning. */
.rp-price-table--drivers tbody th[scope="row"].rp-effect-raises,
.rp-price-table--drivers tbody th[scope="row"].rp-effect-lowers{color:#002b4e;}

/* 28h - CORRECTION. 28g dropped text-transform:uppercase from the drivers row headers,
   but the source text is lowercase "raises" / "lowers", so they rendered lowercase next
   to sentence-case "Travel" and read as a typo. Shayne, 2026-09-16: match them as
   Travel / Raises rather than TRAVEL / RAISES. capitalize does it in CSS, so no page
   source changes across the 37 pages carrying this table. */

/* 28i - space above the FAQ section halved (Shayne, 2026-09-16). #faq carried
   padding-block:clamp(50px,6vw,80px), giving 80px above the heading and ~176px of
   ink-to-ink gap from the end of #fit. Top only; the bottom keeps the section rhythm. */
#faq{padding-top:clamp(25px,3vw,40px)!important;}

/* ===== 2026-09-16 RULE 29 - OFF-PALETTE ELIMINATION =====
   Shayne: "no off palette colors and styles and choices". Census: 47 off-palette
   values in page source across 36 pages, 77 in this sheet. Not 124 decisions - a few
   real roles plus a long tail of near-duplicates: 18 border greys, 8 mid-greys,
   5 pale tints, 2 creams.
   SURFACE TOKENS declared here, because the 2026-09-16 roles covered TEXT only and a
   fold needs a target: ground #FBFAF7 . cream panel #F6F3ED (182 decls/36pg, already
   consistent, kept) . pale panel #EAF1F3 (36 decls/36pg, kept) . hairline
   rgba(0,43,78,.12), .18 emphasis, .28 controls.
   EXCLUDED with reason: #D9D9D9 is the THEME nav search clear button, not hub content.
   #FBF8F2/#B5561B/#E0DBD1/#E6EFF3 (292 decls) are the US hub map illustration. The --c
   ramp on .rp-itin-bases is a CATEGORICAL encoding for overnight-base segments;
   collapsing it would erase which segment is which. */

/* 29a - inline style= attributes. !important is the only thing that reaches an inline
   declaration. Scoped by property so a colour fold cannot repaint a background. */
.rp-country-hub [style*="color:#4A5A66" i]{color:#5C6B75!important;}
.rp-country-hub [style*="color:#FBBC04" i]{color:#FCD34D!important;}
.rp-country-hub [style*="color:#5C3A16" i]{color:#A64F0E!important;}
.rp-country-hub [style*="background:#F1EEE8" i]{background-color:#F6F3ED!important;}
.rp-country-hub [style*="solid #B6E7E0" i]{border-color:#85BDD3!important;}

/* 29b - SVG presentation attributes. CSS beats a presentation attribute, so all 329
   safety-icon strokes fix from here with zero page edits. Icon strokes are non-text,
   so the 3:1 threshold applies: #85BDD3 is 7.02:1 and #F7B267 is 7.91:1 on navy. */
.rp-country-hub svg[stroke="#B6E7E0" i]{stroke:#85BDD3;}
.rp-country-hub svg[stroke="#F0A96A" i]{stroke:#F7B267;}

/* 29c - the long tail sits in per-page module <style> blocks, which follow this sheet
   and win at equal specificity, so each needs !important and its own selector. Every
   one of these modules is slated for the boston-options unification; these go with it. */
#programs .rp-aa-options details,#programs .rp-aa-planning,#programs .rp-aa-planning>div,
.cv-compare th,.cv-compare td,.rp-huntsville-options details,.rp-huntsville-planning>div,
#programs .gc-comparison th,#programs .gc-comparison td,#programs .gc-options details,
#programs .gc-planning dl>div,.gsm-comparison th,.gsm-comparison td,.gsm-options details,
.gsm-planning dl>div,#programs .rp-chicago-extras,#programs .rp-chicago-options,
#programs .gettysburg-options details,#programs .gettysburg-compare th,
#programs .gettysburg-compare td,#programs .rp-mcc-compare th,#programs .rp-mcc-compare td,
#programs .rp-mcc-options details,.ak-local-options,#programs .chs-options,
#programs .efk-options,.hi-planning-rows>div,#faq details,#programs .la-options>details,
.mg-comparison th,.mg-comparison td,#programs .rp-nashville-options,.no-options,
.nyc-planning-grid>div,.nyc-options-grid>div,.rp-orlando-options details{border-color:rgba(0,43,78,.12)!important;}

.cv-compare caption,#programs .efk-swipe-hint,#programs .gettysburg-compare p,
#programs .gc-comparison caption,.gsm-comparison>p,#programs .rp-itin-compare caption{color:#5C6B75!important;}

.cv-compare thead th,#programs .efk-compare thead th,#programs .gettysburg-compare thead,
#programs .gc-comparison thead th,.gsm-comparison thead{background-color:#EAF1F3!important;}
.gsm-table-scroll:focus-visible{outline-color:#CD6414!important;}

/* 29d - this sheet own strays, non-print. Restated selectors, later wins. */
.safety-link{color:#85BDD3;}
.rp-itin-route,#programs .rp-itin-route,.rp-itin-meta span+span::before,
.rp-itin-summary p,.rp-itin-day-top span:last-child,.cur-band .cur-tie{color:#5C6B75;}
.rp-itin-kicker,#programs .rp-itin-kicker{color:#A64F0E;}
#programs{--itin-warn:#A64F0E;--itin-soft:#EAF1F3;--itin-warn-bg:#F6F3ED;}
#programs .rp-itin-tab:hover,#programs .rp-itin-day-row:hover,
#programs .rp-itin-panel-aside{background-color:#EAF1F3;}
#programs .rp-itin-day-panel{background-color:#FBFAF7;}
.rp-country-hub p.rp-xlink a:hover,.rp-country-hub p.rp-xlink a:focus-visible{color:#1E6B87;}
.rp-country-hub .au-dark p.rp-xlink,.rp-country-hub .au-dark p.rp-xlink a,
.rp-country-hub .au-dark p.rp-xlink a:hover{color:#85BDD3;}

/* ===== 2026-09-16 RULE 30 - LAST TAB-SMALL STRAY =====
   The selected tab <small> is defined slot by slot, and the enumeration was patchy:
   the library slot 2 rule carried rgba(255,255,255,.82) and the plain variant .88,
   while rules 26f and 26i only reached slots 3-6. Any page whose selected tab was not
   in that range showed an off-tier white alpha (caught on Philadelphia, slot 2).
   Slots 1-8 in both variants; the widest page, washington-dc, has 7 tabs. !important
   because the per-page <style> blocks set their own slot and follow this sheet.

   NOT A STRAY, for the record: the peer-row separator is
   <span aria-hidden="true" style="color:rgba(0,43,78,.28)">/</span>. That is the
   declared .28 control-hairline token on colour instead of border-color, and the
   element is aria-hidden, so it is decorative and text contrast does not apply. */
#programs .rp-itin-radio:nth-of-type(1):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(1) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(1):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(1) small,
#programs .rp-itin-radio:nth-of-type(2):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(2) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(2):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(2) small,
#programs .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(3):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(3) small,
#programs .rp-itin-radio:nth-of-type(4):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(4) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(4):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(4) small,
#programs .rp-itin-radio:nth-of-type(5):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(5) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(5):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(5) small,
#programs .rp-itin-radio:nth-of-type(6):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(6) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(6):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(6) small,
#programs .rp-itin-radio:nth-of-type(7):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(7) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(7):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(7) small,
#programs .rp-itin-radio:nth-of-type(8):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(8) small,
#programs .rp-itin-shell--library .rp-itin-radio:nth-of-type(8):checked~.rp-itin-tabs>.rp-itin-tab:nth-child(8) small{color:rgba(255,255,255,.84)!important;}

/* ===== 2026-09-16 RULE 31 - OPTIONS-MODULE HEADING =====
   All 12 optional-days modules declare no colour on their heading, so 11 of them render
   in the WordPress theme default #222 instead of the navy serif sub-head tier. Only
   #boston-options>h3 was styled (unification rule 3). Same treatment for all of them.
   NOT using .rp-country-hub>h2 even though Alaska module carries that class: that is the
   page wrapper class, so the selector would repaint every direct-child h2 on all 36
   pages. Alaska is covered by its id instead. (That the module reuses the page wrapper
   class is itself a defect, logged for the boston-options unification.) */
#alaska-options>h2,
#boston-options>h3,#gettysburg-options>h3,#gsm-options>h3,#houston-options>h3,
#la-options>h3,#memphis-options>h3,#new-orleans-options>h3,#nyc-options>h3,
#optional-choices>h3,#route-options>h3,
.efk-options>h3,.gettysburg-options>h3,.gsm-options>h3,.houston-options>h3,
.la-options>h3,.memphis-options>h3,.no-options>h3,.nyc-options>h3,
.rp-aa-options>h3,.rp-mcc-options>h3{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem;font-weight:500;letter-spacing:-.01em;color:#002b4e;margin:0 0 10px;}

/* ===== 2026-09-16 RULE 32 - NESTED MODULE HEADINGS =====
   Rule 31 fixed each module top heading, but two modules carry nested headings that
   also declare no colour, so they still rendered in the theme default #222: Alaska has
   3 h3 (ak-north, ak-valdez, ak-local-options) and New Orleans has 5 h4. Same serif
   navy family. Sized one step BELOW the module heading (1.4rem): the Alaska h3 were
   computing 21.6px against a 22.4px parent heading, which is not a hierarchy. */

/* 32 CORRECTION 2026-09-16: these targeted NESTED headings, but the spine fix demoted the
   module heading itself to h4, so they caught it too and New Orleans rendered 18.4px where
   Philadelphia rendered 22.4px. Scoped to grandchildren so rule 41 keeps the module heading. */
#alaska-options>*  h3,#new-orleans-options>* h4,.no-options>* h4,.ak-local-options h3,
.ak-extension-grid h3{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.15rem!important;font-weight:500;letter-spacing:-.01em;color:#002b4e;}

/* ===== 2026-09-16 RULE 33 - FAQ QUESTION COLOUR =====
   .faq-shell summary h3 sets navy, but the inline-styled FAQ markup (#faq summary h3)
   only ever set size and weight. Most pages carry an inline colour on the h3 so it did
   not show; hawaii and new-orleans do not, so their FAQ questions rendered in the theme
   default #222. Deliberately NOT !important: inline colours on the other pages stay
   authoritative, and only the bare headings inherit this. */
#faq summary h3{color:#002b4e;}

/* ===== 2026-09-16 RULE 34 - THE 13TH MODULE =====
   The Hawaii optional-days module is <div class="hi-options"> with NO id, so the
   id-based census that found the other 12 never saw it and rule 31 missed it. There
   are 13 modules, not 12. Scoped under #programs because the page own block declares
   .hi-options h3{font-size:20px} at equal specificity and, sitting after this sheet,
   would win the tie. */
#programs .hi-options>h3,.hi-options>h3{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem;font-weight:500;letter-spacing:-.01em;color:#002b4e;margin:0 0 10px;}

/* ===== 2026-09-16 RULE 35 - SERIF RAMP 10 STEPS -> 6 =====
   Measured on Boston inside .rp-country-hub: the sans ramp is already tight at 5 steps
   (16.5/16/13.5/12/11) but the serif ramp carried 10. Two were duplicate ROLES rather
   than tiers, and two were defects. Shayne ruled: keep 30.4.
   Kept: 54.4 hero h1 . 40 section h2 . 33.6 program title . 30.4 stat value
          22.4 sub-head/caption . 20 item label */

/* 35a - ONE STAT TIER. The hero strip (.statstrip strong) is 1.9rem/600 and the pricing
   strip was clamp(1.4,1.8vw,1.65) = 26.4px, the same role at a different size. Folded up
   to 1.9rem per Shaynes ruling. This also answers why "From $2,325" was bold: a
   POSITIONAL rule, div:first-child>p:first-child, set weight 600 on the first stat only
   while the other two got 500, so it was bold for being first, not for meaning anything.
   The hero strip has all three at 600; the pricing strip now matches. */
#pricing .section-heading+div:not([class])>div>p:first-child{font-size:1.9rem!important;font-weight:600!important;}

/* 35b - 20.8px was ONE element, the quote-form success line. Onto the 22.4 sub-head. */
#rqf-success>p:first-of-type{font-size:1.4rem!important;}
/* 35b CORRECTION: the first selector hit EVERY p in the success block, blowing its body
   copy up to 22.4px. Scoped to the heading line only. Caught on read-back. */

/* 35c - 17.92px (1.12rem) promise labels in #different. Promise labels and itinerary day
   titles are both item labels in a list, so one tier: 1.25rem = 20px. */
.au-sp5{font-size:1.25rem!important;}

/* 35d - DEFECT: the safety section h2 rendered in Geist while the other seven section h2
   render in IBM Plex Serif. Cause: the legacy v1 tail re-declares .rp-country-hub h1..h6
   as Geist at byte ~140383, AFTER .safety-shell h2 sets serif at ~136942, and at equal
   specificity the later rule wins. The tail also restates .section-heading h2 as serif,
   which is why only safety broke. Restated here, at the end. */
.rp-country-hub .safety-shell h2{font-family:"IBM Plex Serif",Georgia,serif;}

/* 35e - DEFECT: the seven awards links carry inline IBM Plex Serif, the only serif body
   text on the page. Serif is display-only; body text is Geist. */
.rp-country-hub a[style*="IBM Plex Serif"]{font-family:"Geist","Helvetica Neue",Arial,sans-serif!important;}

/* ===== 2026-09-16 RULE 36 - PER-PAGE MODULE TYPE ONTO THE TIERS =====
   Boston measured 6 serif / 5 sans after rule 35, but Atlanta measured 7 / 8. The
   extras come from per-page module <style> blocks that mint their own scale: 13px on
   15 pages, 14px on 15, 15px on 10, headings at 17/18/19/20/21/22/23px. Worst case is
   the hero stat strip: .statstrip dt is declared with EIGHT different clamp values
   across pages for one component.
   !important throughout: these page blocks load AFTER this sheet and would otherwise
   win at equal specificity.
   EXCLUDED: .rp-mcta a (mobile sticky CTA sized for a narrow bar) and .rp-us-pill
   (hub map UI) - enlarging either risks overflow. */

/* 36a - one stat tier, matching .statstrip strong at 1.9rem.
   2026-09-16: the country hubs were REMOVED from this selector list. On a hub the
   .statstrip is a <dl> where dt is the LABEL and dd the value, stacked with
   flex-direction:column-reverse, so forcing dt to 1.9rem rendered the labels at
   30.4px and wrapped them over four lines on all 19 dl-statstrip hubs. Checked every
   hub: 19 of 19 use dt=label, 0 use dt=value, including Shayne's own ghana and
   hungary. The hub value is dd > strong, already set to 1.9rem by the rule above. */
.ak-stat-strip dt,.hi-stats dt,.memphis-stats dt,.mg-stats dt{font-size:1.9rem!important;}

/* 36b - module headings onto the 1.4rem sub-head tier. #faq summary h3 is handled
   separately in 36e: it is a QUESTION, not a sub-head. */
#programs .efk-options h3,#programs .la-options>h3,
#programs .rp-aa-options h3,#programs .rp-chicago-extras h3,
#programs .rp-chicago-options h4,#programs .rp-mcc-options>h3,
.hi-options h3,.rp-huntsville-options h3{font-size:1.4rem!important;}

/* 36c - module body copy onto the 16px body tier */
#programs .chs-options li,#programs .chs-options p,#programs .efk-options,
#programs .gc-comparison table,#programs .gc-options p,#programs .gc-planning dd,
#programs .gettysburg-compare p,#programs .gettysburg-compare table,
#programs .gettysburg-options p,#programs .houston-options p,
#programs .houston-options li,#programs .rp-aa-options p,#programs .rp-aa-options li,
#programs .rp-aa-planning>div,#programs .rp-mcc-compare table,
#programs .rp-nashville-options p,#programs .rp-nashville-options li,
.cv-compare caption,.cv-compare th,.cv-compare td,.cv-compare thead th:first-child,
.cv-program-notes p,.cv-estimate-note,.gsm-comparison table,
.hi-options p,.hi-options li,.hi-planning-rows dd,
.memphis-options p,.memphis-options li,.mg-comparison caption,.mg-options p,
.mg-planning-list dd,.nyc-booking-note,.nyc-options p,
.nyc-planning-grid dd,.nyc-options-grid dd,
.rp-huntsville-options p,.rp-huntsville-planning dd{font-size:16px!important;}

/* 36d - module captions, dt/dd and compare cells onto the 13.5px small tier */
#programs .chs-planning dd,#programs .chs-planning dt,
#programs .efk-compare caption,#programs .efk-compare th,#programs .efk-compare td,
#programs .gc-comparison caption,#programs .rp-itin-compare caption,
#programs .rp-itin-compare th,#programs .rp-itin-compare td,
#programs .rp-itin-compare thead th:first-child,#programs .rp-itin-compare-scroll>p,
#programs .rp-itin-shell--library .rp-itin-compare thead th:first-child,
.ak-stat-strip dd,.gsm-comparison caption,.gsm-comparison>p,
.hi-planning-rows dt,.mg-stats dd{font-size:13.5px!important;}

/* 36e - two pages set #faq summary h3 to 19px/21px in their own blocks. The question
   tier is 16.5px (unification rule 2); restated so the page blocks cannot win. */
#faq summary h3{font-size:16.5px!important;}

/* ===== 2026-09-16 RULE 37 - REM MODULE TYPE + A 36b CORRECTION =====
   (a) CORRECTION: rule 36b listed #fit h3 among the module headings and pushed it to
   1.4rem. Those are the SANS fit labels ("A strong fit", "Probably not a fit"), not
   serif sub-heads, so it made them 22.4px. Removed from 36b and put on the 16.5px
   question tier here, which is where a bold sans label belongs.
   (b) The 36 census read px only, so nine rem-based module rules were invisible to it:
   1.35rem on 3 pages, plus 1.45/1.3/1.22/1.2/1.1/1.05/1.55/2.25rem. Same tiers. */

/* 37a - fit labels: sans, question tier */
#fit h3{font-size:16.5px!important;}

/* 37b - rem-based module headings onto the 1.4rem sub-head tier */
#programs .gettysburg-options h3,#programs .houston-options h3,
.ak-extension-grid h3,.ak-local-options h3,
.gsm-planning h3,.gsm-options h3,
#programs .rp-nashville-options h3,
.no-option-grid h4,.rp-orlando-options>h3{font-size:1.4rem!important;}

/* 37c - a disclosure summary is a question, not a sub-head */
.rp-orlando-options summary{font-size:16.5px!important;}

/* 37d - one page overrides its hero h1 to 2.25rem (36px) against the fleet 54.4px. */
#rp-hero h1{font-size:clamp(2rem,3.8vw,3rem)!important;}

/* ===== 2026-09-16 RULE 38 - PAYMENT BLOCK PARAGRAPH RHYTHM =====
   Shayne: paragraph spacing is weird under "Payment and cancellation". Two causes,
   and the first is the same positional-rule pattern as the bold "From $2,325":
   (a) .rp-country-hub .content-split>div>p:first-of-type sets 16.5px!important, so the
   FIRST paragraph is a different size from its siblings (16.5/26.4 vs 16/24.8). It is
   bigger for being first, not for saying anything different.
   (b) every paragraph carries margin-bottom:10px against a 24.8px line-height, so the
   gap between paragraphs is SMALLER than the gap between lines inside one, and they
   stop reading as separate paragraphs. 14px puts the paragraph gap above the line gap.
   Scoped to #pricing so other .content-split sections keep their lede treatment. */
#pricing .content-split>div>p{font-size:16px!important;line-height:1.55!important;margin:0 0 14px!important;}
#pricing .content-split>div>p:last-child{margin-bottom:0!important;}

/* ===== 2026-09-16 RULE 39 - ONE OPTIONS MODULE (Shayne: "i prefer boston") =====
   22 pages carry an optional-days module under 21 different names. Only Boston was
   styled, because rule 27 moved its private block into this sheet; the rest kept
   per-page blocks with no disclosure affordance. Atlanta measured summary{display:
   list-item} with ::before content none, so nothing showed the rows were expandable.
   Boston treatment applied to all of them. Modules without <details> ignore 39b-39g.
   Selector verified against atlanta(1), boston(1) and chicago(3) before use: it matches
   the modules and nothing else. Scoped to .rp-country-hub so theme chrome is untouched. */

/* 39a - paragraph rhythm */
.rp-country-hub [id$="-options"] p,.rp-country-hub [class*="-options"] p,.rp-country-hub [id="optional-choices"] p,.rp-country-hub [class*="optional-choices"] p,.rp-country-hub [class*="-extras"] p{margin:0 0 12px;}

/* 39b - row divider on the hairline token */
.rp-country-hub [id$="-options"] details,.rp-country-hub [class*="-options"] details,.rp-country-hub [id="optional-choices"] details,.rp-country-hub [class*="optional-choices"] details,.rp-country-hub [class*="-extras"] details{border-top:1px solid rgba(0,43,78,.12)!important;padding:12px 0;}

/* 39c - summary is a flex row, native marker removed */
.rp-country-hub [id$="-options"] summary,.rp-country-hub [class*="-options"] summary,.rp-country-hub [id="optional-choices"] summary,.rp-country-hub [class*="optional-choices"] summary,.rp-country-hub [class*="-extras"] summary{display:flex!important;gap:10px;list-style:none;cursor:pointer;}

.rp-country-hub [id$="-options"] summary::-webkit-details-marker,.rp-country-hub [class*="-options"] summary::-webkit-details-marker,.rp-country-hub [id="optional-choices"] summary::-webkit-details-marker,.rp-country-hub [class*="optional-choices"] summary::-webkit-details-marker,.rp-country-hub [class*="-extras"] summary::-webkit-details-marker{display:none;}

/* 39d - the +/- affordance in palette teal */
.rp-country-hub [id$="-options"] summary::before,.rp-country-hub [class*="-options"] summary::before,.rp-country-hub [id="optional-choices"] summary::before,.rp-country-hub [class*="optional-choices"] summary::before,.rp-country-hub [class*="-extras"] summary::before{content:"+";color:#1E6B87;flex:0 0 12px;}
.rp-country-hub [id$="-options"] details[open]>summary::before,.rp-country-hub [class*="-options"] details[open]>summary::before,.rp-country-hub [id="optional-choices"] details[open]>summary::before,.rp-country-hub [class*="optional-choices"] details[open]>summary::before,.rp-country-hub [class*="-extras"] details[open]>summary::before{content:"−";}

/* 39e - focus ring on the page standard */
.rp-country-hub [id$="-options"] summary:focus-visible,.rp-country-hub [class*="-options"] summary:focus-visible,.rp-country-hub [id="optional-choices"] summary:focus-visible,.rp-country-hub [class*="optional-choices"] summary:focus-visible,.rp-country-hub [class*="-extras"] summary:focus-visible{outline:2px solid #CD6414;outline-offset:3px;}

/* ===== 2026-09-16 RULE 40 - ITINERARY PROSE ON THE BODY TIER =====
   Shayne: itinerary details are 16 in one place and 16.5 in another. Measured inside
   #programs, excluding the print-only document: 38 visible prose paragraphs compute
   16.5px and 4 compute 16px. The 16.5 group is the day-detail copy and the itinerary
   intro; the 16 group is the program summary sitting right beside it, so two body
   sizes carry body prose in one module. 16px is the declared body tier and the
   dominant size on the page, so the day copy folds to it. */
#programs .rp-itin-accordion-copy{font-size:16px!important;}
#programs .rp-itin-title p{font-size:16px!important;}

/* ===== 2026-09-16 RULE 41 - MODULE HEADING AT ANY LEVEL =====
   The spine audit found the options-module heading sitting at H3, a fourth sibling of
   the three real program H3s, so a machine reads four programs where there are three.
   Atlanta is demoted to H4. Rules 31/34/36b/37b all targeted h3 by name, so the sub-head
   treatment is restated here level-agnostically and survives the demotion on any page.
   Same 1.4rem serif navy as the h3 form. */
.rp-country-hub [id$="-options"]>h2,.rp-country-hub [class*="-options"]>h2,.rp-country-hub [id="optional-choices"]>h2,.rp-country-hub [class*="optional-choices"]>h2,.rp-country-hub [class*="-extras"]>h2,.rp-country-hub [id$="-options"]>h3,.rp-country-hub [class*="-options"]>h3,.rp-country-hub [id="optional-choices"]>h3,.rp-country-hub [class*="optional-choices"]>h3,.rp-country-hub [class*="-extras"]>h3,.rp-country-hub [id$="-options"]>h4,.rp-country-hub [class*="-options"]>h4,.rp-country-hub [id="optional-choices"]>h4,.rp-country-hub [class*="optional-choices"]>h4,.rp-country-hub [class*="-extras"]>h4,.rp-country-hub [id$="-options"]>h5,.rp-country-hub [class*="-options"]>h5,.rp-country-hub [id="optional-choices"]>h5,.rp-country-hub [class*="optional-choices"]>h5,.rp-country-hub [class*="-extras"]>h5{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem!important;font-weight:500;letter-spacing:-.01em;color:#002b4e;margin:0 0 10px;}

/* ===== 2026-09-16 RULE 42 - MOBILE STICKY CTA =====
   The sticky proposal bar sits OUTSIDE .rp-country-hub, but every primary-button rule is
   scoped .rp-country-hub .cta-o, so the button got none of them. Measured on the served
   page: transparent background, theme blue rgba(0,57,100,.7), Helvetica Neue, and 16px
   because the global .cta-o{font-size:16px!important} beat its own inline 13.5px. The hero
   button beside it computes #B5570F on white in Geist. Adding the class was half a fix;
   the component has to work in this location.
   Focus ring is WHITE here, not the #CD6414 light-surface standard, because the bar sits
   on navy and an orange ring on orange would not read. */
.rp-mcta{font-family:"Geist","Helvetica Neue",Arial,sans-serif;}
.rp-mcta .cta-o{background:#B5570F!important;color:#fff!important;
  font-family:"Geist","Helvetica Neue",Arial,sans-serif!important;
  font-size:13.5px!important;padding:10px 18px!important;border-radius:4px;}
.rp-mcta .cta-o:hover{background:#CD6414!important;color:#fff!important;}
.rp-mcta .cta-o:focus-visible{outline:2px solid #fff;outline-offset:2px;}

/* ===== 2026-09-16 RULE 44 - ALASKA ROUTE FIGURE + ADD-ON MATRIX =====
   Shayne, 09-16: the extensions module was "this blob". Two structural moves, no new
   words: the day-by-day lists become ONE divergent-flow figure (shared spine through
   day 6, three endings, transport time as the segment label), and seven add-on
   paragraphs become a five-column matrix. "Needs a separate approval" was stated
   seven times in prose; as a column header it is stated once.
   Also folds in Alaska's per-page <style> block, which is DELETED from the body in the
   same pass, and fixes two defects it carried:
     - .ak-local-options border-top was an off-palette grey; rule 29 missed it because
       it is a border, not a text colour. Now the .12 hairline token.
     - .ak-extension-grid h3 was pinned to 1.15rem!important by an earlier sheet rule
       while .ak-local-options h3 fell through to the page block's 1.35rem, so two peer
       module headings rendered 18.4px and 21.6px. Both now the 1.4rem sub-head tier.
   Types reuse existing tiers only: 1.4rem serif sub-head, 16.5px/700 question tier for
   the branch label, 16px body, 13.5px small, #A64F0E kicker. No new size, no new colour. */

.ak-extension-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.ak-extension-grid article{border-top:2px solid #1E6B87;padding-top:18px;}
.ak-extension-grid h3,.ak-local-options h3{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem!important;font-weight:500;line-height:1.25;letter-spacing:-.01em;color:#002b4e;}
.ak-extension-grid p,.ak-extension-grid li,.ak-local-options p{font-size:16px;line-height:1.6;max-width:78ch;}
.ak-extension-grid li{margin-bottom:12px;}
.ak-extension-grid ul{padding-left:20px;}
.ak-local-options{border-top:1px solid rgba(0,43,78,.12);margin-top:24px;padding-top:18px;}
#alaska-options p+p{margin-top:14px;}
@media(max-width:760px){.ak-extension-grid{grid-template-columns:1fr;gap:22px;}}
@media print{#alaska-options{display:none!important;}}

/* 44a - divergent flow figure */
.ak-route{margin:0 0 clamp(28px,3.5vw,44px);padding:0;}
.ak-route figcaption{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.4rem;font-weight:500;line-height:1.2;letter-spacing:-.01em;color:#002b4e;margin:0 0 14px;}
.ak-route-trunk{margin:0;padding:0 0 12px;border-bottom:1px solid rgba(0,43,78,.28);}
.ak-route-days{margin:0;font-size:13.5px;font-weight:700;letter-spacing:.04em;color:#A64F0E;}
.ak-route-leg{margin:2px 0 0;font-size:16px;line-height:1.55;color:#2C3A43;max-width:78ch;}
.ak-route-fan{display:grid;gap:clamp(18px,2.4vw,30px);}
@media(min-width:721px){.ak-route-fan{grid-template-columns:repeat(3,1fr);}}
.ak-route-branch{position:relative;padding:18px 0 0;}
.ak-route-branch::before{content:"";position:absolute;top:0;left:0;width:1px;height:12px;background:rgba(0,43,78,.28);}
.ak-route-name{margin:0 0 10px;font-size:16.5px;font-weight:700;line-height:1.3;color:#002b4e;}
.ak-route-legs{margin:0;padding:0;list-style:none;}
.ak-route-legs li{display:grid;grid-template-columns:26px 1fr;gap:0 10px;margin:0;padding:8px 0;border-top:1px solid rgba(0,43,78,.12);font-size:16px;line-height:1.5;color:#2C3A43;}
.ak-route-legs li:first-child{border-top:0;padding-top:0;}
.ak-route-legs .ak-d{font-size:13.5px;font-weight:700;color:#002b4e;line-height:1.8;}
.ak-route-legs .ak-t{display:block;margin-top:2px;font-size:13.5px;line-height:1.4;color:#A64F0E;}

/* 44b - five-column matrix. The component hides thead for its two-column variants;
   a matrix cannot, because "+1" is undecodable without "Days" above it. */
.ak-matrix-scroll{overflow-x:auto;}
.rp-price-table--matrix{table-layout:fixed;}
.rp-price-table--matrix thead{height:auto;overflow:visible;clip-path:none;white-space:normal;}
.rp-price-table--matrix thead th{padding:0 14px 8px 0;border:0;border-bottom:1px solid rgba(0,43,78,.28);font-size:13.5px;font-weight:700;line-height:1.3;color:#002b4e;text-align:left;vertical-align:bottom;}
.rp-price-table--matrix thead th:nth-child(1){width:23%;}
.rp-price-table--matrix thead th:nth-child(2){width:9%;}
.rp-price-table--matrix thead th:nth-child(3){width:13%;}
.rp-price-table--matrix thead th:nth-child(4){width:28%;}
.rp-price-table--matrix thead th:nth-child(5){width:27%;padding-right:0;}
.rp-price-table--matrix tbody th[scope="row"]{padding:12px 14px 12px 0;font-size:16px;font-weight:700;line-height:1.45;color:#002b4e;vertical-align:top;}
.rp-price-table--matrix tbody td{padding:12px 14px 12px 0;font-size:16px;line-height:1.5;color:#2C3A43;vertical-align:top;}
.rp-price-table--matrix tbody td:last-child{padding-right:0;}
.rp-price-table--matrix .ak-days{font-weight:700;color:#002b4e;white-space:nowrap;}
@media(max-width:860px){.rp-price-table--matrix{min-width:760px;}}

/* 44c - stat-strip identity, rescued from Alaska's page <style> block before that
   block is deleted from the body. Rule 36a/36d already pin the SIZES (1.9rem dt,
   13.5px dd); only family, weight, colour and leading lived in the page block, and
   deleting it without these would drop the hero stats back to sans body text. */
.ak-stat-strip dt{font-family:"IBM Plex Serif",Georgia,serif;font-weight:600;color:#002b4e;line-height:1.1;}
.ak-stat-strip dd{line-height:1.4;}

/* ===== 2026-09-16 RULE 45 - RULE 44 SPECIFICITY CORRECTIONS =====
   Caught by computed style on the served page, not by reading the CSS. Four of rule 44's
   sizes never applied:
     - .ak-route-days and .ak-route-leg are <p>, and ".rp-country-hub p{font-size:inherit}"
       is (0,1,1) against rule 44's (0,1,0), so both inherited the section size at 16.5px.
     - .ak-extension-grid h3 / .ak-local-options h3 lost to rule 32's "#alaska-options > * h3"
       at 1.15rem!important; an ID selector (1,0,1) outranks a class pair even with
       !important on both sides.
   Re-stated here behind #alaska-options so each wins on specificity rather than luck.
   CORRECTION to rule 44's comment: it claimed the two module h3s rendered at different
   sizes (18.4 vs 21.6). They did not. Rule 32 already pinned BOTH to 18.4px, so they were
   consistent; the page block's 1.35rem never won. The real defect was only that 18.4px is
   not the module sub-head tier the rest of the fleet uses. Both go to 1.4rem here.
   The figcaption drops to the 1.15rem serif tier so the figure's own label sits below the
   h3s instead of matching them. */

#alaska-options .ak-route figcaption{font-size:1.15rem;}
#alaska-options .ak-route-days{font-size:13.5px;}
#alaska-options .ak-route-leg{font-size:16px;}
#alaska-options .ak-extension-grid h3,
#alaska-options .ak-local-options h3{font-size:1.4rem!important;}



/* ===== route toggle (.rp-rt), moved out of per-page custom_head_content 2026-09-16 =====
   The radio-driven route picker under the map. It was inlined in the <head> of every hub that
   ships it -- greece, iceland, portugal, spain, vietnam -- which breaks the rule that CSS lives
   in the override post. The block below is the version 4 of those 5 carry byte for byte;
   greece differs only in two font sizes (12.5px against 12px) and keeps its inline copy for now,
   which simply restates these rules. .rp-rt appears on no other page, so this cannot collide. */

.rp-rt{margin:0;}

.rp-rt input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}

.rp-rt .rt{opacity:0;}

.rp-rt .rt-lab{display:none;}

.rp-rt-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;}

.rp-rt-tabs label{font-size:12px;line-height:1.25;font-weight:600;color:#5C6B75;border:1px solid rgba(0,43,78,.18);border-radius:999px;padding:6px 12px;cursor:pointer;background:#fff;}

.rp-rt-tabs label:hover{border-color:rgba(0,43,78,.4);color:#002b4e;}

.rp-rt-cap{margin:10px 0 0;font-size:12px;line-height:1.5;color:#5C6B75;}

.rp-rt-cap span{display:none;}

.rp-rt #rt-r1:checked ~ svg .rt-1{opacity:1;}

.rp-rt #rt-r1:checked ~ svg .rt-1 .rt-lab{display:block;}

.rp-rt #rt-r1:checked ~ .rp-rt-tabs label[for='rt-r1']{background:#B5561B;border-color:#B5561B;color:#fff;}

.rp-rt #rt-r1:checked ~ .rp-rt-cap span[data-r='1']{display:inline;}

.rp-rt #rt-r2:checked ~ svg .rt-2{opacity:1;}

.rp-rt #rt-r2:checked ~ svg .rt-2 .rt-lab{display:block;}

.rp-rt #rt-r2:checked ~ .rp-rt-tabs label[for='rt-r2']{background:#1F6F8B;border-color:#1F6F8B;color:#fff;}

.rp-rt #rt-r2:checked ~ .rp-rt-cap span[data-r='2']{display:inline;}

.rp-rt #rt-r3:checked ~ svg .rt-3{opacity:1;}

.rp-rt #rt-r3:checked ~ svg .rt-3 .rt-lab{display:block;}

.rp-rt #rt-r3:checked ~ .rp-rt-tabs label[for='rt-r3']{background:#6B4E9B;border-color:#6B4E9B;color:#fff;}

.rp-rt #rt-r3:checked ~ .rp-rt-cap span[data-r='3']{display:inline;}

.rp-rt input:focus-visible ~ .rp-rt-tabs label{outline:2px solid #B5561B;outline-offset:2px;}

/* ===== 2026-09-16 RULE 47 - STAT STRIP: ONE CENTRING RULE FOR THE WHOLE FLEET =====
   port/conformance.py found SEVEN different statstrip shapes across 36 pages. The margin
   declaration is written four ways (margin-block:0 on 13 pages, nothing on 15, margin-top/
   margin-bottom:0 on 4, margin:0 auto on 1) and on some pages a trailing `margin:0`
   shorthand CLOBBERS the `margin-inline:auto` declared earlier in the same inline style, so
   the strip renders flush left instead of centred - measured on Alaska at 165px out, its
   first stat at x=40 against an H1 at x=205.
   Fixing that per page is 36 edits and leaves the next page free to reintroduce it. One
   sheet rule beats every inline variant instead, and keeps the zero vertical margin those
   inline styles intend.
   This supersedes the per-page `margin:0 auto` patch on Alaska, which is now redundant. */
.rp-country-hub .statstrip,
.rp-country-hub .ak-stat-strip{margin-inline:auto!important;margin-block:0!important;}

/* ===== 2026-09-16 RULE 48 - STAT STRIP VALUE: BACK TO A CLAMP, AND SMALLER =====
   Shayne: the statstrip looks too big. Rule 35a caused it. The hub's own declaration was
   clamp(1.35rem,2.1vw,1.85rem) - a ceiling of 29.6px that SHRANK on narrow screens. Rule 35a
   replaced it with a flat 1.9rem!important, which is 30.4px: above the design ceiling and no
   longer responsive.
   Measured on san-francisco at 1710px with 242px columns: at 30.4px the two TEXT values
   (Custom school trips, 1 free teacher spot) wrap to two lines while the three numeric values
   sit on one, so the row runs ragged. Simulating the ladder, 26.4px is the first size where
   nothing wraps - and it is an established tier, the size rule 35a itself records the pricing
   strip using (1.65rem) before it unified both UP instead of down.
   Hierarchy after this: H1 48px, stat value 26.4px, stat label 16.5px. */
.rp-country-hub .statstrip strong{font-size:clamp(1.3rem,1.8vw,1.65rem)!important;}

/* ===== 2026-09-16 RULE 49 - STAT STRIP VALUE, BOTH STRUCTURES =====
   Rule 48 only reached .statstrip strong, so Boston shrank and Colonial Williamsburg did not.
   Measured across the fleet: the value lives in <strong> on 28 pages and in <dt> on 7
   (alaska, atlanta, colonial-williamsburg, everglades-florida-keys, gettysburg,
   new-york-city, orlando). The container is <dl> on 24 and <div> on 11.
   One tier for both, so the component has ONE size no matter which shape a page uses. The
   15 per-page .statstrip font-size rules are deleted in the same pass; without that this
   rule still loses on those pages, which is the whole reason the strip drifted to seven
   shapes in the first place. */
.rp-country-hub .statstrip strong,
.rp-country-hub .statstrip dt{font-size:clamp(1.3rem,1.8vw,1.65rem)!important;}

/* ===== 2026-09-16 RULE 50 - ITINERARY SHELL PLACES CHILDREN IN SOURCE ORDER =====
   The single biggest source of per-page CSS, and of a whole class of bug. Measured across
   36 pages: 127 of 151 shell-child rules (84%) are PURE grid placement - grid-row:7,
   grid-column:2;grid-row:3 - every page hand-numbering the rows of the same component.
   That is why every page needs its own <style> block, why the numbers all differ, and why
   an added module lands in whatever row happens to be free: Chicago's options module had
   correct DOM order yet rendered ABOVE the real itineraries because it auto-placed into
   free row 3 while the panels sat at row 4.
   Hand-numbered rows also leave gaps. Measured on washington-dc, the shell is 2009px with
   the explicit rows and 1351px in source order: 658px of phantom whitespace from empty
   numbered rows nobody filled.
   In source order none of that can happen. The sidebar spans, the title spans, everything
   else stacks down column 2 in the order it appears in the HTML. Adding a module needs no
   CSS and cannot land in the wrong place.
   Scoped to screen: the per-page @media print blocks place things deliberately for paper. */
@media screen{
  .rp-itin-shell--library>*{grid-column:2!important;grid-row:auto!important;}
  .rp-itin-shell--library>.rp-itin-title{grid-column:1/-1!important;grid-row:1!important;}
  .rp-itin-shell--library>.rp-itin-tabs{grid-column:1!important;grid-row:2/-1!important;}
}


/* Rule 50: the library becomes one column at its existing 900px breakpoint. */
@media screen and (max-width:900px){
  #programs .rp-itin-shell--library>*{grid-column:1/-1!important;grid-row:auto!important;}
}

/* Hero rows (2026-09-17). The hero grid places the H1 block in row 1 and the text block in row 2,
   with the photo spanning both. With no subtitle line under the H1 (every US location page), the
   photo height was split across both rows and opened a 32-65px gap between the H1 and the text.
   auto 1fr lets row 1 hug the H1 block. Measured: 0 change on croatia, japan, peru, puerto-rico,
   nepal at 1710/1024/390; gettysburg 45px -> 18px at desktop, hero height unchanged. The 960px
   stacked layout resets grid-row on every child, so phones are unaffected. */
#rp-hero{grid-template-rows:auto 1fr;}

/* Stat strip spacing (2026-09-17). Five equal 1fr columns left short values ('6-7 days') with a wide
   empty run and long ones ('Custom school trips') almost touching the next tile, so the gaps read
   uneven. Above 900px (the five-column layout) columns now size to their content and share the
   free space evenly. Measured at 1710/1280/1024/901 on atlanta, alaska, boston, croatia, norway and
   new-york-city: no overflow, strip height equal or lower. The 900/640/560px grids are untouched. */
@media (min-width:901px){.rp-country-hub .statstrip{grid-template-columns:repeat(5,auto)!important;justify-content:space-between!important;}}

/* Options module spacing (2026-09-17). Atlanta's #optional-choices sits straight under the itinerary
   panel with 0px above its heading; the other options modules in that position carry 28-80px.
   Same 28px as #alaska-options. Only atlanta uses this id. */
#programs .rp-itin-panels>#optional-choices{padding-top:28px;}

/* Stat strip labels in <dt> (2026-09-17). Rule 49 sizes every .statstrip dt as a VALUE, but 18 v2 hubs
   (portugal, finland, iceland, italy, greece and others) and south-dakota write the strip the other way
   round: <dt> is the 12px label and the value is <dd><strong>. Rule 49 blew those labels up to 26.4px
   (portugal strip 124px -> 215px). A <dt> followed by <dd><strong> is a label: back to 12px.
   Measured: portugal 215 -> 124px, finland 249 -> 140px; alaska, atlanta, croatia unchanged. */
.rp-country-hub .statstrip dt:has(+ dd > strong){font-size:12px!important;}
