:root{--control-radius:3px;--destructive:#a43535;--surface-blue:#eef7fa;--surface-warm:#fffdf5;--soft-line:#dde3e7}
.rba-subpage{background:var(--surface-warm);color:var(--navy)}
.rba-subpage main{min-height:55vh}.rba-subpage main section[id]{scroll-margin-top:110px}
.sub-breadcrumb{display:flex;justify-content:space-between;gap:22px;padding-block:25px 0;font-size:11px;color:var(--muted);line-height:1.8}.sub-breadcrumb a{color:var(--navy);text-underline-offset:4px}.sub-breadcrumb>div{display:flex;flex-wrap:wrap;gap:10px}
.subpage-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:68px;align-items:center;padding-block:46px 60px}
.subpage-hero h1,.tour-introduction h1,.registration-intro h1{font-size:clamp(38px,4.6vw,64px);line-height:1.07;letter-spacing:-.035em;margin-bottom:23px}
.subpage-lead{font-size:15px;line-height:1.85;color:var(--muted);max-width:530px;margin-bottom:25px}
.subpage-hero figure{margin:0;overflow:hidden}.subpage-hero img{width:100%;height:365px;object-fit:cover;object-position:var(--photo-position,50% 40%)}
.subpage-hero .portrait-hero{width:100%;max-width:330px;justify-self:center}.subpage-hero .portrait-hero img{height:390px;object-position:50% 30%}
.subpage-hero .eyebrow,.tour-introduction .eyebrow{font-size:10px;line-height:1.8;margin-bottom:17px}
.catalog-section{padding-block:40px 75px;border-top:1px solid var(--line)}.catalog-section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:26px}.catalog-section h2,.sub-section-heading h2,.campus-editorial h2,.campus-arrival h2{font-size:clamp(30px,3.3vw,43px);line-height:1.13;letter-spacing:-.025em}.catalog-section-head>p{font-size:11px;color:var(--muted);max-width:300px;line-height:1.8;margin-bottom:3px}
.class-filters{display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:30px}.class-filter-tabs{display:flex;flex-wrap:wrap;gap:8px}.class-filter-tabs button{font:600 11px 'DM Sans',sans-serif;color:var(--navy);border:1px solid var(--line);background:transparent;padding:10px 14px;border-radius:var(--control-radius);cursor:pointer}.class-filter-tabs button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.class-search input{width:200px;max-width:100%;border:1px solid var(--line);border-radius:var(--control-radius);background:white;padding:11px 12px;font:12px 'DM Sans',sans-serif;color:var(--navy)}
.branded-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.branded-class-card{background:white;border:1px solid var(--line);min-width:0;display:flex;flex-direction:column}.branded-class-card>a{display:block;overflow:hidden;aspect-ratio:4/3;background:var(--surface-blue)}.branded-class-card img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center);transform:scale(var(--photo-scale,1));transform-origin:var(--photo-origin,center)}.branded-card-body{padding:24px;display:flex;flex-direction:column;flex:1}.branded-card-kicker{display:flex;gap:12px;justify-content:space-between;font-size:9px;line-height:1.7;color:var(--muted);margin-bottom:12px}.branded-card-kicker .unavailable{color:var(--destructive)}.branded-class-card h3{font-size:27px;line-height:1.13;margin-bottom:10px}.branded-class-card h3 a{color:inherit;text-decoration:none}.branded-card-schedule{font-size:12px;line-height:1.65;color:var(--muted);min-height:20px;margin-bottom:8px}.branded-card-ages{font-size:10px;color:var(--muted);margin:0 0 20px}.branded-card-price{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:20px}.branded-card-price span{font-size:10px;font-weight:400;color:var(--muted);margin-left:8px}.branded-card-body .button{font-size:11px;min-height:44px;padding:12px 18px;justify-content:space-between;margin-top:auto}
.subpage-loading,.subpage-empty,.subpage-error{padding:45px 28px;background:white;border:1px solid var(--line);font-size:14px;color:var(--muted);line-height:1.8;grid-column:1/-1}.subpage-empty h2,.subpage-error h1{font-size:30px;color:var(--navy);margin-bottom:16px}.subpage-error .button,.subpage-empty .button{margin-top:18px}
.product-page{padding-block:25px 65px}.product-page .sub-breadcrumb{padding:0 0 28px;width:100%}.product-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:64px;align-items:start}.product-heading h1{font-size:clamp(34px,3.8vw,50px);line-height:1.08;letter-spacing:-.03em;margin-bottom:17px}.product-heading .eyebrow{font-size:10px;margin-bottom:15px}.product-meta{display:flex;flex-wrap:wrap;gap:8px 19px;font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:24px}.product-photo{aspect-ratio:4/3;overflow:hidden;background:var(--surface-blue);margin:0}.product-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center);transform:scale(var(--photo-scale,1));transform-origin:var(--photo-origin,center)}.product-lead{font-size:14px;line-height:1.85;color:var(--muted);margin-top:22px;max-width:600px}.buy-panel{background:white;border:1px solid var(--line);border-top:3px solid var(--cyan,#68bed0);padding:30px;position:sticky;top:119px}.buy-panel .eyebrow{font-size:9px;margin-bottom:13px}.buy-price{font-size:35px;font-weight:700;line-height:1.2;letter-spacing:-.03em;margin-bottom:9px}.buy-panel>del{font-size:14px;color:var(--muted)}.buy-price-note{font-size:11px;line-height:1.75;color:var(--muted);margin-bottom:25px}.buy-panel fieldset{border:0;padding:0;margin:22px 0}.buy-panel legend,.purchase-field>span{font-size:12px;font-weight:700;line-height:1.7;display:block;margin-bottom:10px}.option-buttons{display:flex;flex-wrap:wrap;gap:8px}.option-buttons button{border:1px solid var(--line);background:white;font:11px/1.6 'DM Sans',sans-serif;padding:10px 12px;color:var(--navy);text-align:left;border-radius:var(--control-radius);cursor:pointer}.option-buttons button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.option-buttons button:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.buy-panel select,.purchase-field input,.purchase-field textarea{width:100%;background:white;color:var(--navy);border:1px solid #bcc7d0;border-radius:var(--control-radius);padding:12px;font:12px/1.6 'DM Sans',sans-serif;min-width:0}.buy-panel select{white-space:normal;font-size:11px}.purchase-field{display:block;margin-top:20px}.purchase-quantity{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;font-weight:700;margin:24px 0 17px}.purchase-quantity input{width:70px;padding:10px;border:1px solid var(--line);font:13px 'DM Sans',sans-serif;color:var(--navy)}.buy-panel .button{width:100%;min-height:48px;font-size:12px}.buy-panel .button:disabled,.tour-booking button:disabled{opacity:.5;cursor:not-allowed}.purchase-guidance{font-size:11px;color:var(--muted);line-height:1.7;margin-top:12px;min-height:18px}.purchase-error{font-size:12px;color:var(--destructive);line-height:1.7;margin-top:10px}.buy-question{font-size:11px;color:var(--navy);display:block;text-underline-offset:4px;margin-top:22px}.product-information{margin-top:50px;border-top:1px solid var(--line);padding-top:37px;max-width:850px}.product-information h2{font-size:33px;margin-bottom:26px}.product-information .course-rich-text h2,.product-information .course-rich-text h3{font-size:21px;line-height:1.35;margin:26px 0 13px}.product-information .course-rich-text p,.product-information .course-rich-text li{font-size:13px;line-height:1.9;color:var(--muted)}.product-information .course-rich-text ul,.product-information .course-rich-text ol{padding-left:20px}.product-information details{border-block-start:1px solid var(--line);margin-top:25px;padding-top:19px}.product-information summary{font-size:13px;font-weight:700;cursor:pointer;line-height:1.8}.camp-registration-section{padding-block:36px 65px;border-top:1px solid var(--line)}.camp-registration-section .product-layout{grid-template-columns:1fr 1.1fr}.camp-registration-section .product-heading h1{font-size:42px}.camp-registration-section .product-information{margin-top:30px}.camp-registration-section .buy-panel{position:static}.camp-memories{padding-block:45px 70px;border-top:1px solid var(--line)}.sub-section-heading{max-width:650px;margin-bottom:30px}.sub-section-heading>p:last-child{font-size:12px;line-height:1.8;color:var(--muted);margin-top:17px}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.memory-grid figure{aspect-ratio:4/3;margin:0;overflow:hidden}.memory-grid img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,50% 40%)}.memory-grid h3{font-size:20px;line-height:1.2;margin-top:17px}.programs-jump-links{padding-bottom:28px}.program-profile{padding-block:48px}.program-inline-photo{max-width:490px;height:230px;margin:0 0 24px;overflow:hidden}.program-inline-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,50% 28%)}.illustrated-profile .program-detail-box{align-self:start;margin-top:48px}.program-profile .program-detail-box{background:var(--surface-blue);border:1px solid var(--line)}
.campus-editorial{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding-block:25px 60px}.campus-editorial figure{aspect-ratio:16/10;margin:0 0 25px;overflow:hidden}.campus-editorial img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center)}.campus-editorial h2{font-size:31px;margin-bottom:17px}.campus-editorial p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);max-width:490px}.campus-arrival{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center;border-top:1px solid var(--line);padding-block:55px 70px}.campus-arrival figure{margin:0;aspect-ratio:4/3;overflow:hidden}.campus-arrival img{height:100%;width:100%;object-fit:cover}.campus-arrival h2{margin-bottom:23px}.campus-arrival p{font-size:14px;line-height:1.85;color:var(--muted);margin-bottom:20px}.campus-arrival .text-link{display:block;font-size:12px;margin-bottom:25px}.campus-arrival .button{margin-bottom:25px}
.tour-page{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;padding-block:45px 70px;align-items:start}.tour-introduction figure{margin:30px 0 23px;height:240px;overflow:hidden}.tour-introduction img{width:100%;height:100%;object-fit:cover}.tour-address{display:flex;flex-direction:column;font-size:13px;line-height:1.8;gap:5px}.tour-address span{color:var(--muted)}.tour-address a{margin-top:6px;font-size:12px}.tour-policy{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.tour-policy summary{font-size:12px;font-weight:700;cursor:pointer}.tour-policy p{font-size:12px;color:var(--muted);line-height:1.9;margin-top:16px}.tour-booking{background:white;border:1px solid var(--line);border-top:3px solid var(--cyan,#68bed0);padding:30px;min-width:0}.tour-booking h2{font-size:28px;line-height:1.2;margin-bottom:13px}.tour-facts{font-size:11px;color:var(--muted);margin-bottom:24px}.booking-week-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;font-size:12px}.booking-week-actions{display:flex;gap:7px}.booking-week-actions button,.booking-day,.booking-slot,.tour-booking select{font:11px/1.5 'DM Sans',sans-serif;color:var(--navy);border:1px solid var(--line);background:white;border-radius:var(--control-radius);padding:8px 12px;cursor:pointer}.booking-days{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}.booking-day{min-width:55px;padding:9px 7px;text-align:center}.booking-day small{display:block;font-size:9px;text-transform:uppercase}.booking-day strong{display:block;font-size:17px;margin-top:3px}.booking-day[aria-pressed=true],.booking-slot[aria-pressed=true]{color:white;background:var(--navy);border-color:var(--navy)}.booking-time-zone{font-size:10px;line-height:1.7;color:var(--muted);margin:13px 0 20px}.booking-slot-group{margin-top:18px}.booking-slot-group>p{font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px;color:var(--muted)}.booking-slots{display:flex;flex-wrap:wrap;gap:8px}.booking-slot{min-width:79px;padding:10px}.booking-empty{padding:20px 0;font-size:12px;line-height:1.8;color:var(--muted)}.booking-empty button{border:0;background:none;color:var(--navy);text-decoration:underline;cursor:pointer}.booking-form{border-top:1px solid var(--line);margin-top:25px;padding-top:24px}.booking-form h3{font-size:21px;margin-bottom:18px}.booking-form label{display:block;margin-bottom:17px;font-size:12px;font-weight:600;line-height:1.6}.booking-form input,.booking-form textarea,.booking-form select{width:100%;border:1px solid #bcc7d0;border-radius:var(--control-radius);background:white;padding:11px 12px;color:var(--navy);font:13px/1.6 'DM Sans',sans-serif;margin-top:7px}.tour-booking>.button{width:100%;margin-top:8px}.booking-next-step{font-size:11px;line-height:1.8;color:var(--muted);margin-top:15px}.booking-confirmed{background:var(--surface-blue);padding:28px;font-size:14px;line-height:1.8}
.floating-registration{position:fixed;z-index:30;right:24px;bottom:24px;border:0;border-radius:var(--control-radius);background:var(--navy);color:white;box-shadow:0 5px 20px #21385d26;padding:15px 20px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.floating-registration[hidden]{display:none}.floating-registration span{margin-left:12px;color:var(--navy);background:white;display:inline-block;padding:2px 7px;border-radius:var(--control-radius)}
.registration-dialog{width:min(540px,calc(100% - 24px));height:100%;max-height:100dvh;margin:0 0 0 auto;padding:0;border:0;background:var(--surface-warm);color:var(--navy)}.registration-dialog::backdrop{background:#16243c66}.registration-panel{display:flex;flex-direction:column;min-height:100%}.registration-panel-head{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:26px 28px;border-bottom:1px solid var(--line)}.registration-panel-head h2{font-size:29px}.icon-close{border:0;background:none;font-size:27px;line-height:1;color:var(--navy);cursor:pointer;padding:5px}.registration-panel-body{padding:5px 28px 25px;flex:1}.registration-line{display:grid;grid-template-columns:70px 1fr auto;gap:17px;padding-block:25px;border-bottom:1px solid var(--line)}.registration-line figure{margin:0;width:70px;height:83px;overflow:hidden;background:var(--surface-blue)}.registration-line img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center)}.registration-line h3{font-size:18px;line-height:1.35;margin-bottom:8px}.registration-line p{font-size:10px;color:var(--muted);line-height:1.7;margin-bottom:6px;overflow-wrap:anywhere}.line-price{font-size:12px;line-height:1.8;text-align:right}.line-price del{display:block;color:var(--muted);font-size:10px}.quantity-control{display:flex;align-items:center;gap:11px;font-size:12px;margin-top:14px}.quantity-control button{background:white;border:1px solid var(--line);color:var(--navy);width:27px;height:28px;font:13px 'DM Sans',sans-serif;cursor:pointer}.quantity-control .remove-line{background:none;border:0;width:auto;font-size:10px;text-decoration:underline;padding:0;margin-left:3px}.registration-totals{padding:25px 28px;background:var(--surface-blue)}.registration-totals>div{display:flex;justify-content:space-between;gap:20px;font-size:12px;line-height:1.8;margin-bottom:10px}.registration-totals .total-line{border-top:1px solid #cddbe1;padding-top:15px;margin-top:14px;font-size:17px}.registration-totals .button{width:100%;margin-top:12px;font-size:12px}.registration-totals>p{font-size:10px;line-height:1.8;color:var(--muted);margin-top:13px}.registration-secondary{display:block;text-align:center;font-size:11px;margin-top:18px;color:var(--navy)}.empty-registration{padding:40px 0}.empty-registration h2{font-size:29px;margin-bottom:20px}.empty-registration p{font-size:14px;color:var(--muted);line-height:1.85}.empty-registration .button{margin-top:24px}.registration-intro{padding-block:45px 28px}.registration-intro>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.85}.registration-steps{display:flex;gap:30px;list-style-position:inside;padding:23px 0 0;margin-top:25px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);flex-wrap:wrap}.registration-steps [aria-current]{color:var(--navy);font-weight:700}.registration-page{padding-block:15px 70px}.registration-page-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:start}.registration-page .registration-line{grid-template-columns:90px 1fr auto}.registration-page .registration-line figure{width:90px;height:105px}.registration-page .registration-totals{position:sticky;top:120px;border:1px solid var(--line)}.registration-totals h2{font-size:26px;margin-bottom:24px}.registration-page .registration-line h3{font-size:22px}.registration-page .registration-line p{font-size:11px}.registration-page .line-price{font-size:14px}.registration-page .empty-registration{max-width:650px}
@media(max-width:1000px){.subpage-hero,.product-layout,.tour-page,.campus-arrival{gap:35px}.branded-class-grid{gap:22px 18px}.branded-card-body{padding:20px}.branded-class-card h3{font-size:24px}.class-filters{align-items:flex-start}.class-search input{width:165px}.product-layout{grid-template-columns:1.15fr 1fr}.buy-panel,.tour-booking{padding:25px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.registration-page-layout{gap:30px}}
@media(max-width:760px){.sub-breadcrumb{font-size:10px;padding-top:20px}.subpage-hero{grid-template-columns:1fr;gap:27px;padding-block:30px 40px}.subpage-hero h1,.tour-introduction h1,.registration-intro h1{font-size:39px}.subpage-lead{font-size:14px;line-height:1.75;margin-bottom:21px}.subpage-hero img{height:240px}.subpage-hero .portrait-hero{max-width:none;width:100%}.subpage-hero .portrait-hero img{height:255px;object-position:50% 28%}.catalog-section{padding-block:30px 45px}.catalog-section-head{display:block;margin-bottom:22px}.catalog-section-head>p{margin-top:15px;max-width:100%}.class-filters{flex-direction:column;gap:17px}.class-search,.class-search input{width:100%}.class-filter-tabs{gap:6px}.class-filter-tabs button{font-size:10px;padding:9px 11px}.branded-class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 13px}.branded-card-body{padding:17px 14px}.branded-class-card h3{font-size:22px}.branded-card-kicker{display:block;font-size:9px}.branded-card-kicker>span:last-child{display:block;margin-top:4px}.branded-card-schedule{font-size:10px}.branded-card-price{font-size:17px;margin-bottom:16px}.branded-card-price span{display:block;margin:5px 0 0}.branded-card-body .button{font-size:10px;padding:10px 12px}.product-page{padding-block:20px 40px}.product-layout,.camp-registration-section .product-layout{grid-template-columns:1fr;gap:22px}.product-heading h1{font-size:34px;margin-bottom:13px}.product-heading .eyebrow{font-size:9px;margin-bottom:10px}.product-meta{font-size:10px;margin-bottom:18px;gap:7px 14px}.product-photo{height:180px;aspect-ratio:auto}.product-lead{display:none}.buy-panel{position:static;padding:23px}.buy-price{font-size:31px}.buy-price-note{margin-bottom:19px}.buy-panel fieldset{margin-block:17px}.buy-panel legend,.purchase-field>span{font-size:11px}.purchase-quantity{margin-top:19px}.buy-question{margin-top:18px}.product-information{margin-top:32px;padding-top:25px}.product-information h2{font-size:29px}.product-information .course-rich-text h2,.product-information .course-rich-text h3{font-size:20px}.camp-registration-section{padding-block:28px 40px}.camp-registration-section .product-heading h1{font-size:32px}.camp-registration-section .product-lead{display:block}.memory-grid{gap:22px 14px}.memory-grid h3{font-size:19px}.camp-memories{padding-block:30px 45px}.illustrated-profile .program-detail-box{margin-top:0}.program-inline-photo{height:210px}.campus-editorial{grid-template-columns:1fr;gap:25px;padding-block:15px 35px}.campus-editorial h2{font-size:29px}.campus-editorial p:not(.eyebrow){font-size:13px}.campus-arrival{grid-template-columns:1fr;gap:28px;padding-block:35px 45px}.tour-page{grid-template-columns:1fr;gap:25px;padding-block:30px 40px}.tour-introduction figure{height:160px;margin-block:20px}.tour-address,.tour-policy{display:none}.tour-introduction .subpage-lead{margin-bottom:0}.tour-booking{padding:22px}.tour-booking h2{font-size:26px}.booking-day{min-width:47px}.booking-slot{min-width:75px}.booking-form input,.booking-form textarea,.booking-form select{font-size:16px}.floating-registration{bottom:18px;right:18px;padding:13px 17px;font-size:11px}.registration-dialog{width:calc(100% - 18px)}.registration-panel-head{padding:23px}.registration-panel-head h2{font-size:27px}.registration-panel-body{padding-inline:22px}.registration-line{grid-template-columns:56px 1fr auto;gap:12px}.registration-line figure{width:56px;height:74px}.registration-line h3{font-size:17px}.registration-totals{padding:23px}.registration-intro{padding-block:32px 23px}.registration-steps{gap:12px 20px;font-size:10px}.registration-page-layout{grid-template-columns:1fr;gap:27px}.registration-page .registration-totals{position:static}.registration-page .registration-line{grid-template-columns:65px 1fr auto;gap:13px}.registration-page .registration-line figure{width:65px;height:85px}.registration-page .registration-line h3{font-size:19px}.registration-page .line-price{font-size:12px}.registration-page{padding-bottom:45px}}
@media(max-width:400px){.branded-class-grid{grid-template-columns:1fr}.branded-class-card{display:grid;grid-template-columns:.88fr 1fr}.branded-class-card>a{height:100%;aspect-ratio:auto}.branded-card-body{padding:18px 15px}.branded-class-card h3{font-size:23px}.branded-card-ages{margin-bottom:12px}.branded-card-price span{display:none}.branded-card-body .button{margin-top:2px}.branded-card-schedule{font-size:11px}.branded-card-kicker{font-size:8px}}

.registration-content{display:flex;flex-direction:column;flex:1}

@media(max-width:760px){.tour-introduction .tour-policy{display:block;margin-top:15px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Match embedded camp headings and calendar text controls to the site typography. */
.product-heading h2{font-family:var(--font-heading,'Fraunces',Georgia,serif);font-size:clamp(2rem,3.2vw,3.2rem);line-height:1.12;letter-spacing:-.035em;margin:0 0 20px;color:var(--navy,#20365b)}
.booking-time-zone .text-link{border:0;background:transparent;padding:0;color:var(--navy,#20365b);font:inherit;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
