/* Public-page finishing layer. Keep the watercolor artwork, brand typography,
   paper edges and CMS element paths; separate reading text from display type. */
body.camp-page {
  --camp-page-gutter: 12px;
  --camp-page-bg-top: #f1f6e5;
  --camp-page-bg-sage: #f0f5e4;
  --camp-page-bg-paper: #f4f0e2;
  --camp-page-bg-warm: #f2eddf;
  --camp-page-bg-footer: #eee9da;
  --camp-page-bg-lower: #f2eddf;
  --camp-page-bg-image:
    radial-gradient(ellipse at 12% 7%, rgb(255 235 161 / 16%), transparent 34rem),
    radial-gradient(ellipse at 88% 18%, rgb(110 189 61 / 7%), transparent 36rem),
    radial-gradient(ellipse at 18% 58%, rgb(219 137 105 / 5%), transparent 34rem),
    radial-gradient(ellipse at 82% 82%, rgb(64 135 44 / 5%), transparent 38rem),
    linear-gradient(180deg, var(--camp-page-bg-top), var(--camp-page-bg-sage) 22%, var(--camp-page-bg-paper) 52%, var(--camp-page-bg-warm) 78%, var(--camp-page-bg-footer));
}

.camp-page .camp-header-nav { box-shadow: 0 .5rem 1.5rem rgb(50 80 30 / 9%); }
.camp-page #top .camp-hero-wash {
  background:
    radial-gradient(ellipse at 29% 65%, rgb(255 250 223 / 48%), transparent 67%),
    linear-gradient(90deg, rgb(248 246 216 / 28%), rgb(248 246 216 / 12%) 48%, transparent 78%);
}

/* Cut the scene away at the paper edge so the actual page background shows
   through. A separately colored SVG fill creates a visible horizontal seam. */
.camp-page #top .camp-hero {
  --hero-paper-edge-height: clamp(2.85rem, 4.7vw, 4.35rem);
  mask-image: linear-gradient(#000, #000), url("./hero-torn-mask.e2824a15037b.svg");
  mask-size: 100% calc(100% - var(--hero-paper-edge-height) + 1px), 100% var(--hero-paper-edge-height);
  mask-position: top, bottom;
  mask-repeat: no-repeat;
  mask-mode: alpha;
  mask-composite: add;
}
.camp-page #top .camp-hero-torn-edge {
  display: block;
  inset-inline: 0;
  bottom: 0;
  width: 100%;
  height: var(--hero-paper-edge-height);
}
/* Keep only light along the contour; the transparent mask supplies the cut. */
.camp-page #top .camp-hero-torn-fill { fill: none; }
.camp-page #top .camp-hero-torn-shadow {
  fill: none;
  stroke: rgb(255 249 214 / 75%);
  stroke-width: 24;
  filter: blur(8px);
  transform: none;
}
.camp-page #top .camp-hero-torn-fiber {
  stroke: rgb(255 253 235 / 90%);
  stroke-width: 5;
  filter: blur(2px);
}

.camp-page #top [id] { scroll-margin-top: 1.75rem; }

/* One page edge for every public route, matching the wide home layout. */
@media (min-width: 640px) {
  body.camp-page { --camp-page-gutter: 16px; }
}
@media (min-width: 1024px) {
  body.camp-page { --camp-page-gutter: 20px; }
}
.camp-page #top > section,
.camp-page header:has(> .camp-header-nav),
.camp-page .camp-footer {
  padding-inline: var(--camp-page-gutter);
}
/* Match the layer of the legacy !important wide-screen rules. */
@layer components {
  .camp-page #top > section > .mx-auto,
  .camp-page #top .camp-promo-album,
  .camp-page .camp-footer-frame {
    width: 100% !important;
    max-width: none !important;
  }
}
.camp-page .camp-header-nav { max-width: none; }

/* Interior pages share a quieter reading rhythm without changing their layouts. */
.camp-page #top .camp-child-hero {
  padding-top: 7.75rem;
  padding-bottom: 2.75rem;
}
.camp-page #top .camp-child-hero-title h1 {
  font-size: clamp(2.6rem, 4.6vw, 5rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.camp-page #top:not(.camp-page-main) h2 {
  font-size: clamp(1.85rem, 3.3vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
.camp-page #top:not(.camp-page-main) p,
.camp-page #top:not(.camp-page-main) dd {
  font-weight: 500;
  line-height: 1.65;
}
.camp-page #top:not(.camp-page-main) p:has(+ :is(h1,h2,h3)),
.camp-page #top:not(.camp-page-main) header > p:first-child {
  font-weight: 800;
  line-height: 1.35;
}
.camp-page #top :is(
  .camp-parents-section-heading, .camp-parents-checklist-copy,
  .camp-parents-day-copy, .camp-parents-medical-copy,
  .camp-parents-medication-intro, .camp-apply-links-copy,
  .camp-about-feature-copy, .camp-about-chronicle-heading,
  .camp-staff-section-heading, .camp-facilities-heading,
  .camp-facilities-care-copy, .camp-living-meals-copy,
  .camp-living-laundry, .camp-safety-heading, .camp-safety-family-copy,
  .camp-services-page-heading, .camp-contacts-section-heading,
  .camp-contacts-route-copy, .camp-programs-flow-copy,
  .camp-program-chapter-format, .camp-documents-generator-copy,
  .camp-shifts-season-block-heading
) > span,
.camp-page #top:not(.camp-page-main) :is(
  .camp-parents-conditions-notes article,
  .camp-parents-hygiene-details section,
  .camp-parents-medication-guide li div,
  .camp-parents-docs-card div,
  .camp-apply-route-text-card header, .camp-apply-cta-card div,
  .camp-about-present header, .camp-about-return-card div,
  .camp-staff-intro header, .camp-staff-day div,
  .camp-staff-admission header, .camp-staff-confirm div,
  .camp-facilities-intro header, .camp-facilities-living div,
  .camp-facilities-activity div, .camp-facilities-confirm div,
  .camp-living-intro header, .camp-living-room div,
  .camp-living-rest header, .camp-living-confirm div,
  .camp-health-protection-story header, .camp-health-certificate header,
  .camp-health-medicines header, .camp-health-contact div,
  .camp-services-contact div, .camp-accessibility-intro header,
  .camp-accessibility-conversation div, .camp-accessibility-check header,
  .camp-accessibility-agreement header, .camp-accessibility-decision div,
  .camp-education-opening div, .camp-education-route header,
  .camp-education-practice div, .camp-education-adult div,
  .camp-education-reflection div, .camp-education-result header,
  .camp-education-next div, .camp-program-chapter-details section,
  .camp-programs-cta-line div, .camp-blank-application-library header
) > span,
.camp-page #top .camp-parents-checklist-rules li > span,
.camp-page #top .camp-shifts-season-card-lead {
  font-weight: 500;
  line-height: 1.65;
}
.camp-page #top .camp-child-hero-aside > p {
  font-weight: 500;
  line-height: 1.65;
}

/* Season navigation and cards retain their individual illustrated identities. */
.camp-shifts-season-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: 0 0 2.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgb(38 49 59 / 12%);
}
.camp-shifts-season-nav a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding: .65rem 1.3rem;
  border: 1px solid rgb(64 135 44 / 22%);
  border-radius: 2rem;
  background: rgb(255 254 248 / 55%);
  color: #345e2f;
  font-weight: 750;
}
.camp-shifts-season-nav a:hover { background: #e2eed2; }
.camp-shifts-season-nav a:focus-visible { outline: 3px solid #40872c; outline-offset: 3px; }
.camp-page #top .camp-shifts-season-card-body { padding: 1.35rem; gap: .8rem; }
.camp-page #top .camp-shifts-season-card-facts > span { font-size: .8rem; line-height: 1.55; font-weight: 500; }
.camp-page #top .camp-shifts-season-card-facts b { font-weight: 750; }
.camp-page #top .camp-program-chapter-copy strong {
  max-width: 13ch;
  font-size: clamp(2.2rem, 4vw, 4.5rem);
  line-height: 1.03;
}
.camp-page #top .camp-program-chapter-copy > span:nth-child(3) {
  font-weight: 500;
  line-height: 1.65;
}
.camp-page #top .camp-program-chapter-details { gap: 2rem; padding-block: 1.75rem; }

/* Paper is a supporting surface, with less stripe contrast and shadow. */
.camp-page #top .camp-documents-generator {
  background: linear-gradient(115deg, #fdf9eb, #f3f1df 72%, #e8eedc);
  box-shadow: 0 .5rem 1.5rem rgb(38 49 59 / 6%);
}
.camp-page #top .camp-documents-generator::before { opacity: .2; }
.camp-page #top .camp-blank-application-list article { padding-block: 1.15rem; gap: .85rem; }
.camp-page #top .camp-blank-application-list article > strong { font-weight: 700; line-height: 1.4; }
.camp-page #top .camp-blank-application-list article a { min-height: 2.75rem; min-width: 3rem; }
.camp-page #top .camp-organization-data-list > div { padding-block: 1rem; }
.camp-page #top .camp-parents-checklist-rules li { padding-block: .95rem; }
.camp-page #top .camp-parents-day-schedule-row { padding-block: .85rem; }

/* Long policy copy gets a book-like measure while the contents stay available. */
.camp-page #top .camp-privacy-article { max-width: none; padding: 0 1.75rem 2rem; background: rgb(255 254 248 / 40%); }
.camp-page #top .camp-privacy-article > section > p { max-width: 72ch; }
.camp-page #top .camp-privacy-article h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.2; text-wrap: initial; }
.camp-page #top .camp-privacy-article :is(p,li,dd) { font-weight: 400; line-height: 1.8; }
.camp-page #top .camp-privacy-article :is(strong,b) { font-weight: 700; }

/* Home: keep the scrapbook, but cards no longer collide. */
.camp-page #top .camp-advantages-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.75rem 1.65rem;
  min-height: 0;
  padding: 1rem .75rem 1.5rem;
  margin-top: 2.5rem;
}
.camp-page #top .camp-advantage-card {
  position: relative;
  inset: auto;
  width: auto;
  min-width: 0;
  min-height: 0;
  padding: .65rem .65rem 1.15rem;
  transform: rotate(-1deg);
  box-shadow: 0 .5rem 1.1rem rgb(38 49 59 / 10%);
}
.camp-page #top .camp-advantage-card:nth-child(even) { transform: rotate(1deg); }
.camp-page #top .camp-advantage-card:hover,
.camp-page #top .camp-advantage-card:focus-visible {
  transform: translateY(-.25rem);
  box-shadow: 0 .7rem 1.4rem rgb(38 49 59 / 15%);
}
.camp-page #top .camp-advantage-card p { font-weight: 500; line-height: 1.6; }
.camp-page #top .camp-advantage-card h3 { line-height: 1.15; }
.camp-page #top .camp-advantage-card::before { opacity: .72; box-shadow: 0 .15rem .35rem rgb(38 49 59 / 8%); }
.camp-page #top .camp-about-petals-layer { opacity: .5; }
.camp-page #top .camp-parent-letter p { font-weight: 500; line-height: 1.7; text-transform: none; }
.camp-page #top .camp-parent-question p { font-weight: 500; line-height: 1.65; }
.camp-page .camp-footer-frame { box-shadow: 0 -.35rem 1.25rem rgb(12 24 19 / 10%); }
.camp-page .camp-footer-contact-panel { box-shadow: none; }

/* Open dialogs follow the same hierarchy as the pages behind them. */
.camp-page .camp-shift-modal-header > span,
.camp-page .camp-shift-modal-facts dd,
.camp-page .camp-shift-modal-details :is(p,li),
.camp-page .camp-public-application-header > div > span,
.camp-page .camp-public-application-privacy-copy > span {
  font-weight: 500;
  line-height: 1.65;
}
.camp-page .camp-public-application-header h2,
.camp-page .camp-public-application-privacy-copy h3 {
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  line-height: 1.1;
  letter-spacing: -.025em;
}
.camp-page #advantage-modal-text { font-weight: 500; line-height: 1.65; }

@media (max-width: 1180px) {
  .camp-page #top .camp-advantages-board { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
  .camp-page #top .camp-safety-briefing { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .camp-page #top .camp-safety-family { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1023px) {
  .camp-page #top .camp-safety-briefing { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .camp-page #top .camp-child-hero-title h1 { font-size: clamp(2rem, 8.5vw, 3rem); line-height: 1.05; }
  .camp-page #top:not(.camp-page-main) h2 { font-size: clamp(1.7rem, 7vw, 2.4rem); line-height: 1.12; }
  .camp-page #top .camp-shifts-season-card-body { padding: 1.1rem; }
  .camp-page #top .camp-program-chapter-copy strong { font-size: clamp(2rem, 8.8vw, 3rem); }
  .camp-page #top .camp-program-chapter-details { gap: 1.25rem; }
  .camp-page #top .camp-privacy-article { padding-inline: .35rem; background: transparent; }
  .camp-page #top .camp-privacy-article h2 { font-size: 1.5rem; }
  .camp-page #top .camp-advantages-board { grid-template-columns: 1fr; gap: 1.75rem; padding-inline: .5rem; }
  .camp-shifts-season-nav { gap: .5rem; margin-bottom: 2rem; }
  .camp-shifts-season-nav a { padding-inline: 1rem; }
}

/* Quick directions: a quiet illustrated index between the hero and scrapbook. */
.camp-page #top .camp-quick-shifts {
  padding: clamp(1.75rem, 3.5vw, 3.5rem) var(--camp-page-gutter) 2rem;
}
.camp-page #top .camp-hero + .camp-quick-shifts {
  /* The lower half of the mask is transparent but still occupies layout space. */
  margin-top: calc(clamp(2.85rem, 4.7vw, 4.35rem) * -.5);
  padding-top: 1.25rem;
}
.camp-shift-directions-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.camp-shift-directions-heading h2 {
  margin: 0;
  color: #244837;
  font-size: clamp(1.45rem, 2.1vw, 2rem);
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.025em;
}
.camp-shift-directions-heading > a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: .6rem;
  flex-shrink: 0;
  color: #3b6336;
  font-size: .9rem;
  font-weight: 650;
  text-underline-offset: .3em;
}
.camp-shift-directions-heading > a:hover { text-decoration: underline; }
.camp-page #top .camp-shift-directions-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  padding: 0;
}
.camp-page #top .camp-shift-direction-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  overflow: visible;
  padding: 0 0 1.15rem;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--direction-accent) 32%, transparent);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  clip-path: none;
  transform: none;
  animation: none;
  transition: border-color 180ms ease;
}
.camp-page #top .camp-shift-direction-card::before,
.camp-page #top .camp-shift-direction-card::after,
.camp-page #top .camp-shift-direction-map::after,
.camp-page #top .camp-shift-direction-body::before,
.camp-page #top .camp-shift-direction-map-grain { display: none; }
.camp-page #top .camp-shift-direction-map {
  position: relative;
  inset: auto;
  height: auto;
  min-height: 0;
  aspect-ratio: 1.8;
  border-radius: .35rem;
  overflow: hidden;
  mask-image: linear-gradient(#000 80%, transparent);
}
.camp-page #top .camp-shift-direction-map img {
  min-height: 0;
  object-position: 75% center;
  object-fit: cover;
  filter: none;
  transform: none;
  transition: transform 260ms ease;
}
.camp-page #top .camp-shift-direction-body {
  position: relative;
  inset: auto;
  flex: 1;
  width: 100%;
  max-width: none;
  padding: .85rem 0 0;
  gap: .65rem;
  text-shadow: none;
}
.camp-page #top .camp-shift-direction-note {
  color: color-mix(in srgb, var(--direction-accent) 72%, #263b30);
  font-size: .65rem;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: .09em;
}
.camp-page #top .camp-shift-direction-card strong {
  min-height: 2.4em;
  color: #243c31;
  font-size: clamp(1.12rem, 1.65vw, 1.55rem);
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.025em;
}
.camp-page #top .camp-shift-direction-text {
  display: block;
  overflow: visible;
  color: #5b665c;
  font-size: .875rem;
  font-weight: 450;
  line-height: 1.6;
  -webkit-line-clamp: unset;
}
.camp-page #top .camp-shift-direction-link {
  justify-content: space-between;
  width: 100%;
  margin-top: auto;
  padding-top: .9rem;
  color: #375c34;
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
}
.camp-page #top .camp-shift-direction-link::after {
  content: '↗';
  width: auto;
  height: auto;
  background: none;
  font-size: 1.15rem;
  transition: transform 180ms ease;
}
.camp-page #top .camp-shift-direction-card:hover { border-color: var(--direction-accent); }
.camp-page #top .camp-shift-direction-card:hover img { transform: scale(1.035); }
.camp-page #top .camp-shift-direction-card:hover .camp-shift-direction-link::after { transform: translate(2px, -2px); }
.camp-page #top .camp-shift-direction-card:focus-visible,
.camp-shift-directions-heading > a:focus-visible { outline: 2px solid #40872c; outline-offset: 6px; }
@media (max-width: 1023px) {
  .camp-page #top .camp-shift-directions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
  .camp-page #top .camp-shift-direction-card strong { min-height: 0; }
}
@media (max-width: 539px) {
  .camp-page #top .camp-shift-directions-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .camp-page #top .camp-shift-direction-card { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); align-items: start; gap: 1rem; padding-bottom: 1.25rem; }
  .camp-page #top .camp-shift-direction-map { aspect-ratio: 1; margin-top: .15rem; mask-image: none; border-radius: .4rem; }
  .camp-page #top .camp-shift-direction-body { padding: 0; gap: .4rem; }
  .camp-page #top .camp-shift-direction-link { padding-top: .35rem; }
  .camp-shift-directions-heading { align-items: center; gap: 1rem; }
  .camp-shift-directions-heading h2 { max-width: 10em; }
  .camp-shift-directions-heading > a { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .camp-page #top .camp-shift-direction-map img,
  .camp-page #top .camp-shift-direction-link::after { transition: none; }
}

/* Scheduled catalog, including the interval before new dates are announced. */
.camp-page #top :is(.camp-section-shift-polaroids, .camp-shifts-choice, .camp-shifts-season-nav)[hidden] { display: none; }
.camp-shifts-empty { grid-column: 1 / -1; padding: clamp(1.5rem, 3vw, 3rem); background: rgb(255 254 248 / 55%); border: 1px solid rgb(64 135 44 / 12%); border-radius: .5rem; }
.camp-page #top .camp-shifts-empty h2 { color: #244837; font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.15; text-transform: none; }
.camp-page #top .camp-shifts-empty p { max-width: 42rem; margin-top: 1rem; color: #5b665c; font-weight: 450; line-height: 1.65; }
.camp-shifts-empty a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 1rem; color: #375c34; font-weight: 650; text-decoration: underline; text-underline-offset: .25em; }
.camp-admin-shift-date-help { grid-column: 1 / -1; margin: 0; font-size: .9rem; line-height: 1.6; color: #526153; }
.camp-page #top .camp-shift-polaroid-body::after { content: "Подробнее о смене →"; }
.camp-page #top .camp-shift-direction-note { font-size: .7rem; letter-spacing: .02em; }
.camp-page #top .camp-shift-direction-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }

/* Shift catalogue: a seasonal illustrated collection, with details in the dialog. */
.camp-page #top.camp-shifts-main .camp-child-hero { padding-top: 7.1rem; padding-bottom: 1.5rem; }
.camp-page #top.camp-shifts-main .camp-child-hero-title h1 {
  color: #244837;
  font-size: clamp(2.4rem, 4.5vw, 5rem);
  font-weight: 700;
  text-transform: none;
  letter-spacing: -.045em;
}
.camp-page #top.camp-shifts-main .camp-child-hero-aside { max-width: 28rem; justify-self: end; }
.camp-page #top.camp-shifts-main .camp-shifts-season-nav {
  gap: .5rem;
  padding: .5rem 0 1.25rem;
  margin-bottom: 1.5rem;
  border-color: rgb(36 72 55 / 14%);
}
.camp-page #top.camp-shifts-main .camp-shifts-season-nav a {
  gap: 1.5rem;
  padding: .8rem 1.3rem;
  min-width: 8rem;
  justify-content: space-between;
  border-color: transparent;
  background: transparent;
  color: #536553;
  border-radius: .6rem;
  font-size: 1rem;
  transition: background 160ms ease, color 160ms ease;
}
.camp-page #top.camp-shifts-main .camp-shifts-season-nav a small { font-size: .75rem; opacity: .65; }
.camp-page #top.camp-shifts-main .camp-shifts-season-nav a:hover { background: rgb(255 254 244 / 65%); }
.camp-page #top.camp-shifts-main .camp-shifts-season-nav a[aria-current] { background: #315d3b; color: #fffce9; }
.camp-page #top.camp-shifts-main .camp-shifts-season-block[hidden] { display: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-block { padding: 0; border: 0; background: transparent; box-shadow: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-block::before,
.camp-page #top.camp-shifts-main .camp-shifts-season-block::after { display: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-block-heading {
  display: grid;
  grid-template-columns: 1fr minmax(0, .8fr);
  align-items: end;
  gap: 2rem;
  margin: 0 0 1.25rem;
  padding: 0;
  border: 0;
}
.camp-page #top.camp-shifts-main .camp-shifts-season-block-heading p { font-size: .65rem; letter-spacing: .12em; margin-bottom: .6rem; }
.camp-page #top.camp-shifts-main .camp-shifts-season-block-heading h2 {
  color: #2e4937;
  font-size: clamp(2rem, 3.1vw, 3.5rem);
  font-weight: 650;
  text-transform: none;
  line-height: 1.1;
  letter-spacing: -.035em;
}
.camp-page #top.camp-shifts-main .camp-shifts-season-block-heading > span { max-width: 42rem; font-size: .925rem; color: #677264; font-weight: 450; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.9rem, 1.5vw, 1.5rem); }
.camp-page #top.camp-shifts-main .camp-shifts-season-card { grid-column: auto; min-width: 0; margin: 0; border: 0; transform: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 1px solid rgb(61 87 48 / 10%);
  border-radius: .85rem;
  background: rgb(255 254 245 / 65%);
  overflow: hidden;
  transform: none;
  box-shadow: 0 .2rem .6rem rgb(39 67 37 / 3%);
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.camp-page #top.camp-shifts-main .camp-shifts-season-card > a:hover { transform: translateY(-4px); box-shadow: 0 .6rem 1.4rem rgb(39 67 37 / 9%); }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-paper,
.camp-page #top.camp-shifts-main .camp-shifts-season-card-photo::after { display: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-photo {
  position: relative;
  inset: auto;
  flex: none;
  width: 100%;
  height: auto;
  aspect-ratio: 1.5;
  margin: 0;
  border: 0;
  border-radius: 0;
  clip-path: none;
  box-shadow: none;
  opacity: 1;
  transform: none;
}
.camp-page #top.camp-shifts-main .camp-shifts-season-card-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) brightness(1.05); transform: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card:hover .camp-shifts-season-card-photo { transform: none; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card:hover img { transform: scale(1.035); }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-photo > span { top: .8rem; left: .8rem; font-size: .7rem; letter-spacing: .1em; color: white; text-shadow: 0 1px 5px #354332; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-body { flex: 1; padding: 1.25rem; gap: .7rem; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-kicker { margin: 0; font-size: .65rem; font-weight: 700; letter-spacing: .09em; white-space: normal; text-align: left; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-body > strong { margin: 0; min-height: 2.4em; font-size: clamp(1.15rem, 1.65vw, 1.65rem); font-weight: 650; line-height: 1.2; letter-spacing: -.025em; text-transform: none; color: #273f31; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-lead { flex: none; min-height: 3em; margin: 0; font-size: .85rem; font-weight: 450; line-height: 1.5; color: #6a7367; -webkit-line-clamp: 3; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-facts { grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); gap: .8rem; margin-top: auto; padding-top: 1rem; border: 0; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-facts > span { border: 0; padding: 0; font-size: .75rem; line-height: 1.5; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-facts b { font-size: .58rem; font-weight: 650; color: #7b8272; letter-spacing: .075em; margin-bottom: .3rem; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-footer { display: flex; justify-content: space-between; align-items: center; min-height: 2.4rem; padding-top: .85rem; margin-top: .4rem; color: #315d3b; font-size: .85rem; font-weight: 650; text-transform: none; letter-spacing: 0; }
.camp-page #top.camp-shifts-main .camp-shifts-season-card-footer > span { font-size: 1.4rem; font-weight: 400; }
.camp-page #top.camp-shifts-main .camp-shifts-choice { padding-top: 1rem; padding-bottom: 3rem; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-heading h2,
.camp-page #top.camp-shifts-main .camp-shifts-apply-card h2 { font-size: clamp(1.8rem, 2.8vw, 3rem); font-weight: 650; text-transform: none; color: #2e4937; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-heading > span { font-size: .9rem; font-weight: 450; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid { gap: 1.5rem; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid article { padding: 1.3rem 0; border: 0; border-top: 1px solid rgb(49 93 59 / 18%); border-radius: 0; background: transparent; box-shadow: none; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid article::before,
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid article::after { display: none; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid h3 { font-size: 1.25rem; font-weight: 650; text-transform: none; line-height: 1.2; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid p { font-size: .9rem; font-weight: 450; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid ul { display: none; }
.camp-page #top.camp-shifts-main .camp-shifts-choice-grid a { font-size: .8rem; font-weight: 650; letter-spacing: 0; text-transform: none; }
.camp-page #top.camp-shifts-main .camp-shifts-apply-card { padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid rgb(49 93 59 / 14%); border-radius: .9rem; background: linear-gradient(115deg, #e1ecd2, #f9f5e4); box-shadow: none; }
.camp-page #top.camp-shifts-main .camp-shifts-apply-card::before,
.camp-page #top.camp-shifts-main .camp-shifts-apply-card::after { display: none; }
.camp-page #top.camp-shifts-main :is(.camp-shifts-season-block, .camp-shifts-season-card) { scroll-margin-top: 6.5rem; }
@media (max-width: 1023px) {
  .camp-page #top.camp-shifts-main .camp-shifts-season-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .camp-page #top.camp-shifts-main .camp-shifts-season-card-body > strong { font-size: 1.4rem; }
}
@media (max-width: 639px) {
  .camp-page #top.camp-shifts-main .camp-child-hero-aside { justify-self: stretch; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .3rem; margin-bottom: 1.75rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-nav a { min-width: 0; padding: .7rem .6rem; gap: .3rem; font-size: .85rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-nav a small { font-size: .65rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-block-heading { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-block-heading > span { font-size: .875rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-card-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-card-photo { aspect-ratio: 1.6; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-card-body > strong { min-height: 0; font-size: 1.5rem; }
  .camp-page #top.camp-shifts-main .camp-shifts-season-card-lead { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .camp-page #top.camp-shifts-main .camp-shifts-season-card > a,
  .camp-page #top.camp-shifts-main .camp-shifts-season-card img { transition: none; }
}
.camp-page #top.camp-shifts-main .camp-shifts-season-card-footer { width: 100%; }
.camp-page .camp-shift-modal { grid-template-columns: minmax(0, 1fr); }
.camp-page .camp-shift-modal-panel { width: 100%; max-width: 92rem; border-radius: 1rem; }
.camp-page .camp-shift-modal.is-open .camp-shift-modal-panel { transform: none; }
.camp-page .camp-shift-modal-header h2 { color: #2e4937; font-size: clamp(1.8rem, 2.7vw, 2.8rem); font-weight: 650; line-height: 1.12; letter-spacing: -.035em; text-transform: none; }
.camp-page .camp-shift-modal-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.camp-page .camp-shift-modal-details > section:first-child { grid-column: 1 / -1; border-bottom: 1px solid rgb(49 93 59 / 13%); }
.camp-page .camp-shift-modal-details > section:nth-child(2) { border-left: 0; }
@media (max-width: 767px) {
  .camp-page .camp-shift-modal-visual { min-height: 0; height: 12rem; }
  .camp-page .camp-shift-modal-details { grid-template-columns: minmax(0, 1fr); }
}

.camp-page #top.camp-shifts-main .camp-shifts-apply-card > div > span { font-size: .925rem; font-weight: 450; line-height: 1.6; }

/* Apply: a short preparation guide and a readable instruction for each territory. */
.camp-page #top.camp-apply-main { --apply-ink: #2e4937; --apply-muted: #657060; --apply-line: rgb(49 77 40 / 15%); color: var(--apply-ink); }
.camp-page #top.camp-apply-main .camp-child-hero { padding-top: 7.1rem; padding-bottom: 2.25rem; }
.camp-page #top.camp-apply-main .camp-child-hero-layout { grid-template-columns: clamp(9rem, 12vw, 14rem) minmax(0, 1fr) minmax(17rem, .65fr); }
.camp-page #top.camp-apply-main .camp-child-hero-figure { width: 100%; }
.camp-page #top.camp-apply-main .camp-child-hero-title h1 { color: var(--apply-ink); font-size: clamp(2.4rem, 4.5vw, 5rem); font-weight: 650; line-height: 1.05; text-transform: none; letter-spacing: -.045em; }
.camp-page #top.camp-apply-main .camp-child-hero-aside > p { color: var(--apply-muted); font-weight: 450; }
.camp-page #top.camp-apply-main .camp-child-hero-actions a { font-size: .85rem; font-weight: 600; }
.camp-page #top.camp-apply-main [id] { scroll-margin-top: 7rem; }
.camp-page #top.camp-apply-main :is(a, button, summary, [role="tabpanel"]):focus-visible { outline: 2px solid #658548; outline-offset: 5px; border-radius: .2rem; }
.camp-page #top.camp-apply-main :is(h2, h3, h4, h5) { margin: 0; color: var(--apply-ink); text-transform: none; font-weight: 600; letter-spacing: -.025em; line-height: 1.25; }
.camp-page #top.camp-apply-main h2 { font-size: clamp(1.8rem, 2.7vw, 3rem); line-height: 1.12; letter-spacing: -.035em; }
.camp-page #top.camp-apply-main h3 { font-size: clamp(1.5rem, 2.2vw, 2.3rem); }
.camp-page #top.camp-apply-main h4 { font-size: 1.25rem; }
.camp-page #top.camp-apply-main h5 { font-size: 1.05rem; }
.camp-page #top.camp-apply-main .application-guide-eyebrow { margin: 0 0 .8rem; font-size: .65rem; line-height: 1.5; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; color: #72804f; }
.camp-page #top.camp-apply-main .application-guide-navigation nav { display: flex; flex-wrap: wrap; gap: .35rem 2rem; padding: .7rem 0; border-block: 1px solid var(--apply-line); }
.camp-page #top.camp-apply-main .application-guide-navigation a { display: flex; align-items: center; min-height: 2.75rem; font-size: .9rem; font-weight: 550; color: #536b45; }
.camp-page #top.camp-apply-main .application-guide-navigation a:hover { text-decoration: underline; text-underline-offset: .3rem; }
.camp-page #top.camp-apply-main .application-guide-section { padding-block: clamp(2rem, 3.7vw, 4rem); }
.camp-page #top.camp-apply-main :is(.application-guide-preparation, .application-guide-resources) { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); align-items: start; gap: clamp(2rem, 5vw, 6rem); }
.camp-page #top.camp-apply-main .application-guide-heading > p:not(.application-guide-eyebrow) { max-width: 29rem; margin: 1rem 0 0; color: var(--apply-muted); font-size: .95rem; line-height: 1.65; }
.camp-page #top.camp-apply-main .application-guide-preparation { align-items: center; }
.camp-page #top.camp-apply-main .application-guide-prep-art { display: block; width: min(100%, 20rem); height: 15rem; margin: 1.5rem auto 0; object-fit: contain; }
.camp-page #top.camp-apply-main .application-guide-checks details { border-bottom: 1px solid var(--apply-line); }
.camp-page #top.camp-apply-main .application-guide-checks summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 5rem; padding: 1.2rem 0; list-style: none; cursor: pointer; }
.camp-page #top.camp-apply-main .application-guide-checks summary > span { display: flex; align-items: baseline; gap: 1.2rem; }
.camp-page #top.camp-apply-main .application-guide-checks summary small { font-size: .65rem; color: #849366; }
.camp-page #top.camp-apply-main .application-guide-checks summary strong { font-size: 1.05rem; font-weight: 550; line-height: 1.4; }
.camp-page #top.camp-apply-main .application-guide-checks summary > b { display: grid; place-items: center; flex: 0 0 2rem; height: 2rem; border: 1px solid var(--apply-line); border-radius: 50%; font-weight: 400; font-size: 1.15rem; }
.camp-page #top.camp-apply-main :is(.application-guide-checks, .application-guide-extra) summary::-webkit-details-marker { display: none; }
.camp-page #top.camp-apply-main .application-guide-checks details[open] summary > b,
.camp-page #top.camp-apply-main .application-guide-extra[open] summary > span { transform: rotate(45deg); }
.camp-page #top.camp-apply-main .application-guide-checks details > div { padding: 0 0 1.5rem 2.1rem; font-size: .9rem; line-height: 1.65; color: var(--apply-muted); }
.camp-page #top.camp-apply-main .application-guide-checks details p + p { margin-top: .85rem; }
.camp-page #top.camp-apply-main .application-guide-path { border-top: 1px solid var(--apply-line); padding-top: 2.5rem; }
.camp-page #top.camp-apply-main .application-guide-section-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 2rem; align-items: end; margin-bottom: 1.75rem; }
.camp-page #top.camp-apply-main .application-guide-section-heading > p { justify-self: end; max-width: 32rem; margin: 0; font-size: .9rem; line-height: 1.65; color: var(--apply-muted); }
.camp-page #top.camp-apply-main .application-guide-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.camp-page #top.camp-apply-main .application-guide-tabs button { min-height: 3.1rem; padding: .9rem 1.6rem; border: 1px solid var(--apply-line); border-radius: .5rem; background: rgb(255 254 244 / 40%); color: #617451; font-size: .95rem; font-weight: 550; line-height: 1.4; cursor: pointer; }
.camp-page #top.camp-apply-main .application-guide-tabs button[aria-selected="true"] { color: #fffce9; background: #315d3b; border-color: #315d3b; }
.camp-page #top.camp-apply-main .application-guide-tabs button:not([aria-selected="true"]):hover { background: rgb(255 254 244 / 80%); }
.camp-page #top.camp-apply-main .application-guide-panel[hidden] { display: none; }
.camp-page #top.camp-apply-main .application-guide-route-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, .5fr); gap: 2rem; align-items: center; padding-bottom: 2rem; }
.camp-page #top.camp-apply-main .application-guide-route-heading > div > p:last-child { max-width: 58rem; margin: .9rem 0 0; color: var(--apply-muted); font-size: .95rem; line-height: 1.65; }
.camp-page #top.camp-apply-main .application-guide-route-heading img { width: 100%; height: 17rem; object-fit: contain; }
.camp-page #top.camp-apply-main .application-guide-methods > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1rem; }
.camp-page #top.camp-apply-main .application-guide-methods article { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--apply-line); border-radius: .65rem; background: rgb(255 254 245 / 45%); }
.camp-page #top.camp-apply-main .application-guide-methods p { max-width: 48rem; margin: .75rem 0 1.25rem; color: var(--apply-muted); font-size: .9rem; line-height: 1.65; }
.camp-page #top.camp-apply-main .application-guide-methods a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; color: #496c3a; font-size: .85rem; font-weight: 550; }
.camp-page #top.camp-apply-main .application-guide-route-details { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; margin-top: 2.5rem; }
.camp-page #top.camp-apply-main .application-guide-route-details ul { display: grid; gap: .8rem; margin: 1.25rem 0 0; padding: 0 0 0 1.1rem; list-style: disc; color: var(--apply-muted); font-size: .9rem; line-height: 1.65; }
.camp-page #top.camp-apply-main .application-guide-route-details li::marker { color: #9ba67e; }
.camp-page #top.camp-apply-main .application-guide-extra { margin-top: 1.5rem; border-block: 1px solid var(--apply-line); }
.camp-page #top.camp-apply-main .application-guide-extra summary { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; list-style: none; cursor: pointer; font-size: .9rem; font-weight: 550; }
.camp-page #top.camp-apply-main .application-guide-extra summary > span { font-size: 1.1rem; font-weight: 400; }
.camp-page #top.camp-apply-main .application-guide-extra ul { margin-top: 0; padding-bottom: 1.25rem; font-size: .85rem; }
.camp-page #top.camp-apply-main .application-guide-after { padding: 1.5rem; background: rgb(243 225 174 / 25%); border-left: 2px solid #bda66b; border-radius: 0 .65rem .65rem 0; }
.camp-page #top.camp-apply-main .application-guide-after .application-guide-eyebrow { font-size: .6rem; }
.camp-page #top.camp-apply-main .application-guide-after ul { font-size: .875rem; }
.camp-page #top.camp-apply-main .application-guide-resources { padding-top: 2.5rem; border-top: 1px solid var(--apply-line); }
.camp-page #top.camp-apply-main .application-guide-link-list a { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; min-height: 5rem; padding: 1.1rem 0; border-bottom: 1px solid var(--apply-line); }
.camp-page #top.camp-apply-main .application-guide-link-list strong { display: block; font-size: 1rem; font-weight: 550; line-height: 1.4; }
.camp-page #top.camp-apply-main .application-guide-link-list small { display: block; margin-top: .3rem; color: var(--apply-muted); font-size: .8rem; line-height: 1.5; }
.camp-page #top.camp-apply-main .application-guide-link-list a > span:last-child { color: #799060; font-size: 1.25rem; }
.camp-page #top.camp-apply-main .application-guide-contact-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 3rem; padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--apply-line); border-radius: .9rem; background: linear-gradient(115deg, #e1ecd2, #f9f5e4); }
.camp-page #top.camp-apply-main .application-guide-contact-card > div > p:last-child { max-width: 45rem; margin: 1rem 0 0; font-size: .9rem; color: var(--apply-muted); line-height: 1.65; }
.camp-page #top.camp-apply-main .application-guide-contact-actions { display: grid; gap: 1rem; }
.camp-page #top.camp-apply-main .application-guide-contact-actions a { display: flex; justify-content: space-between; gap: 1.5rem; min-height: 2.75rem; align-items: center; padding: .75rem 1.2rem; font-size: .9rem; font-weight: 550; }
.camp-page #top.camp-apply-main .application-guide-contact-actions a:first-child { background: #315d3b; color: #fffce9; border-radius: .5rem; }
.camp-page #top.camp-apply-main .application-guide-contact { padding-bottom: 4rem; }
@media (min-width: 768px) and (max-width: 1023px) {
  .camp-page #top.camp-apply-main .camp-child-hero-layout { grid-template-columns: 10rem minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .camp-page #top.camp-apply-main .camp-child-hero-layout { grid-template-columns: 7rem minmax(0, 1fr); column-gap: 1rem; }
  .camp-page #top.camp-apply-main .camp-child-hero-aside { grid-column: 1 / -1; }
  .camp-page #top.camp-apply-main :is(.application-guide-preparation, .application-guide-resources, .application-guide-section-heading, .application-guide-route-details, .application-guide-contact-card) { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .camp-page #top.camp-apply-main .application-guide-preparation > header { display: block; }
  .camp-page #top.camp-apply-main .application-guide-prep-art { width: min(85%, 19rem); height: 14rem; margin: 1.25rem auto 0; }
  .camp-page #top.camp-apply-main .application-guide-section-heading > p { justify-self: start; }
}
@media (max-width: 639px) {
  .camp-page #top.camp-apply-main .application-guide-section { padding-block: 1.75rem; }
  .camp-page #top.camp-apply-main .application-guide-navigation nav { gap: 0 1.5rem; }
  .camp-page #top.camp-apply-main .application-guide-navigation a { font-size: .8rem; }
  .camp-page #top.camp-apply-main .application-guide-heading > p:not(.application-guide-eyebrow) { font-size: .875rem; }
  .camp-page #top.camp-apply-main .application-guide-checks summary strong { font-size: .95rem; }
  .camp-page #top.camp-apply-main .application-guide-checks summary > span { gap: .85rem; }
  .camp-page #top.camp-apply-main .application-guide-checks details > div { padding-left: 0; }
  .camp-page #top.camp-apply-main .application-guide-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .camp-page #top.camp-apply-main .application-guide-tabs button { padding: .8rem .7rem; font-size: .85rem; }
  .camp-page #top.camp-apply-main .application-guide-route-heading { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .camp-page #top.camp-apply-main .application-guide-route-heading img { display: block; width: min(90%, 21rem); height: 16rem; margin: 1rem auto 0; }
  .camp-page #top.camp-apply-main .application-guide-route-heading > div > p:last-child { font-size: .9rem; }
  .camp-page #top.camp-apply-main .application-guide-methods > div { grid-template-columns: minmax(0, 1fr); }
  .camp-page #top.camp-apply-main .application-guide-methods article { padding: 1.2rem; }
  .camp-page #top.camp-apply-main .application-guide-after { padding: 1.2rem; }
  .camp-page #top.camp-apply-main .application-guide-contact { padding-bottom: 3rem; }
}

/* Documents: clear preparation actions and a quiet file library. */
.camp-page #top.camp-documents-library-page { --docs-ink: #2e4937; --docs-muted: #657060; --docs-line: rgb(49 77 40 / 15%); }
.camp-page #top.camp-documents-library-page .camp-child-hero { padding-top: 7.1rem; padding-bottom: 2.25rem; }
.camp-page #top.camp-documents-library-page .camp-child-hero-title h1 { color: var(--docs-ink); font-size: clamp(2.4rem, 4.5vw, 5rem); font-weight: 650; line-height: 1.05; letter-spacing: -.045em; text-transform: none; }
.camp-page #top.camp-documents-library-page .camp-child-hero-aside > p { font-weight: 450; color: var(--docs-muted); }
.camp-page #top.camp-documents-library-page [id] { scroll-margin-top: 7rem; }
.camp-page #top.camp-documents-library-page :is(a, button):focus-visible { outline: 2px solid #658548; outline-offset: 4px; }
.camp-page #top.camp-documents-library-page h2 { color: var(--docs-ink); font-size: clamp(1.8rem, 2.7vw, 3rem); line-height: 1.13; font-weight: 600; letter-spacing: -.035em; text-transform: none; }
.camp-page #top.camp-documents-library-page .camp-documents-index { display: flex; flex-wrap: wrap; gap: .4rem 2rem; padding: .7rem 0; margin: 0 0 2.25rem; border-color: var(--docs-line); }
.camp-page #top.camp-documents-library-page .camp-documents-index a { display: flex; align-items: center; gap: .65rem; min-height: 2.75rem; padding: 0; border: 0; }
.camp-page #top.camp-documents-library-page .camp-documents-index a::after { display: none; }
.camp-page #top.camp-documents-library-page .camp-documents-index strong { font-size: .9rem; color: #536b45; font-weight: 550; line-height: 1.5; text-transform: none; }
.camp-page #top.camp-documents-library-page .camp-documents-index small { min-width: 1.35rem; padding: .15rem .3rem; border-radius: .3rem; background: rgb(69 100 47 / 7%); color: #6d7b5f; font-size: .65rem; text-align: center; }
.camp-page #top.camp-documents-library-page .camp-documents-index a:hover strong { text-decoration: underline; text-underline-offset: .3rem; }
.camp-page #top.camp-documents-library-page .camp-documents-generator { grid-template-columns: 7rem minmax(0, 1fr) minmax(13rem, .4fr); gap: 2rem; min-height: 0; padding: clamp(1.5rem, 3vw, 3rem); margin-bottom: 3rem; clip-path: none; border: 1px solid var(--docs-line); border-radius: .9rem; background: linear-gradient(115deg, #e1ecd2, #f9f5e4); }
.camp-page #top.camp-documents-library-page .camp-documents-generator::before { display: none; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-art img { width: 100%; max-height: 8rem; filter: none; transform: none; }
.camp-page #top.camp-documents-library-page :is(.camp-documents-generator-copy p, .camp-blank-application-library > header p) { color: #72804f; font-size: .65rem; font-weight: 650; line-height: 1.5; letter-spacing: .14em; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-copy h2 { margin-top: .65rem; font-size: clamp(1.8rem, 2.5vw, 2.6rem); max-width: 19em; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-copy > span { max-width: 40rem; margin-top: .85rem; color: var(--docs-muted); font-size: .9rem; font-weight: 450; line-height: 1.65; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-action { gap: .8rem; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-action > span { color: var(--docs-muted); font-size: .85rem; font-weight: 450; line-height: 1.5; text-transform: none; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-action > span strong { color: var(--docs-ink); font-size: 1.05rem; font-weight: 600; text-transform: none; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-action button { min-height: 3.2rem; padding: .9rem 1rem; border-radius: .5rem; background: #315d3b; box-shadow: none; font-size: .9rem; font-weight: 600; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-action button:hover { background: #254c30; }
.camp-page #top.camp-documents-library-page .camp-documents-generator-action small { color: var(--docs-muted); font-size: .7rem; font-weight: 400; line-height: 1.5; }
.camp-page #top.camp-documents-library-page .camp-blank-application-library { padding: 0 0 3rem; margin-bottom: 0; border: 0; }
.camp-page #top.camp-documents-library-page .camp-blank-application-library > header { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 3rem; margin-bottom: 1.5rem; }
.camp-page #top.camp-documents-library-page .camp-blank-application-library > header > span { max-width: 35rem; justify-self: end; color: var(--docs-muted); font-size: .9rem; font-weight: 450; line-height: 1.65; }
.camp-page #top.camp-documents-library-page .camp-blank-application-list { gap: 0 2.5rem; border: 0; }
.camp-page #top.camp-documents-library-page .camp-blank-application-list article { grid-template-columns: 1.4rem minmax(0, 1fr) auto; gap: .8rem; min-height: 5.4rem; padding: 1rem 0; border: 0; border-top: 1px solid var(--docs-line); }
.camp-page #top.camp-documents-library-page .camp-blank-application-list article > span { color: #869177; font-size: .65rem; font-weight: 450; }
.camp-page #top.camp-documents-library-page .camp-blank-application-list article > strong { color: var(--docs-ink); font-size: .9rem; font-weight: 550; line-height: 1.5; }
.camp-page #top.camp-documents-library-page .camp-blank-application-list a { min-height: 2.75rem; gap: .45rem; padding: .6rem .7rem; border: 1px solid var(--docs-line); border-radius: .4rem; background: rgb(255 254 245 / 50%); color: #536b45; font-size: .75rem; font-weight: 550; }
.camp-page #top.camp-documents-library-page .camp-blank-application-list a:first-child { background: rgb(84 119 61 / 8%); }
.camp-page #top.camp-documents-library-page .camp-blank-application-list a:hover { background: #315d3b; color: #fffce9; border-color: #315d3b; }
.camp-page #top.camp-documents-library-page .camp-blank-application-list a span { font-size: .9rem; font-weight: 400; }
.camp-page #top.camp-documents-library-page .camp-document-group { padding: 2.5rem 0; gap: 1.5rem; border-color: var(--docs-line); }
.camp-page #top.camp-documents-library-page .camp-document-group-heading { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; align-items: end; padding: 0; }
.camp-page #top.camp-documents-library-page .camp-document-group-heading > span { max-width: 35rem; justify-self: end; color: var(--docs-muted); font-size: .9rem; font-weight: 450; line-height: 1.65; }
.camp-page #top.camp-documents-library-page .camp-document-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; }
.camp-page #top.camp-documents-library-page .camp-document-card { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; grid-column: auto; align-items: center; gap: 1.5rem; width: 100%; min-width: 0; min-height: 0; margin: 0; padding: 1.5rem; border: 1px solid var(--docs-line); border-radius: .65rem; background: rgb(255 254 245 / 40%); box-shadow: none; clip-path: none; transform: none; text-align: left; transition: background 160ms ease, border-color 160ms ease; }
.camp-page #top.camp-documents-library-page .camp-document-card::before,
.camp-page #top.camp-documents-library-page .camp-document-card::after { display: none; }
.camp-page #top.camp-documents-library-page .camp-document-card:hover { background: rgb(255 254 245 / 80%); border-color: #9eaf8b; transform: none; box-shadow: none; }
.camp-page #top.camp-documents-library-page .camp-document-file-icon { display: block; width: 2.5rem; color: #849776; }
.camp-page #top.camp-documents-library-page .camp-document-file-icon :is(svg, img) { display: block; width: 100%; height: 3rem; object-fit: contain; }
.camp-page #top.camp-documents-library-page .camp-document-card-content { display: grid; gap: .5rem; padding: 0; min-height: 0; }
.camp-page #top.camp-documents-library-page .camp-document-card-top { display: block; color: #839075; font-size: .65rem; font-weight: 500; letter-spacing: .07em; line-height: 1.5; }
.camp-page #top.camp-documents-library-page .camp-document-card-content > strong { min-height: 0; margin: 0; color: var(--docs-ink); font-size: 1.15rem; font-weight: 550; line-height: 1.35; text-transform: none; letter-spacing: -.02em; }
.camp-page #top.camp-documents-library-page .camp-document-card-description { display: block; max-width: 55rem; margin: 0; color: var(--docs-muted); font-size: .85rem; font-weight: 400; line-height: 1.65; }
.camp-page #top.camp-documents-library-page .camp-document-card-bottom { display: flex; flex-direction: column; align-items: end; gap: .75rem; margin: 0; padding: 0; border: 0; }
.camp-page #top.camp-documents-library-page .camp-document-card-bottom > span:first-child { color: #7f8b75; font-size: .7rem; font-weight: 450; letter-spacing: 0; text-transform: none; }
.camp-page #top.camp-documents-library-page .camp-document-card-action { color: #496c3a; font-size: .85rem; font-weight: 550; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.camp-page .camp-documents-viewer { grid-template-columns: minmax(0, 1fr); }
.camp-page .camp-documents-viewer .camp-document-modal-panel { width: 100%; max-width: 96rem; border-radius: .85rem; background: #f3f2e8; }
.camp-page .camp-documents-viewer.is-open .camp-document-modal-panel { transform: none; }
.camp-page .camp-documents-viewer .camp-document-modal-meta { border-radius: .85rem 0 0 .85rem; background: #2e4937; overflow-y: auto; }
.camp-page .camp-documents-viewer .camp-document-modal-meta h2 { font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.15; font-weight: 600; letter-spacing: -.025em; text-transform: none; }
.camp-page .camp-documents-viewer .camp-document-modal-meta > span { font-size: .875rem; font-weight: 450; line-height: 1.65; }
.camp-page .camp-documents-viewer .camp-document-modal-meta dl > div { border: 0; border-bottom: 1px solid rgb(255 252 233 / 14%); border-radius: 0; padding: .7rem 0; background: none; }
.camp-page .camp-documents-viewer .camp-document-modal-meta dd { font-size: .875rem; font-weight: 450; }
.camp-page .camp-documents-viewer .camp-document-modal-viewer { box-shadow: none; background: #fffefa; }
.camp-page .camp-documents-library-page ~ .camp-public-application-modal { grid-template-columns: minmax(0, 1fr); }
.camp-page .camp-documents-library-page ~ .camp-public-application-modal .camp-public-application-panel { width: 100%; max-width: 86rem; border-radius: .85rem; background: #f6f5e9; }
.camp-page .camp-documents-library-page ~ .camp-public-application-modal :is(.camp-public-application-header h2, .camp-public-application-privacy-copy h3) { color: #2e4937; font-size: clamp(1.65rem, 2.5vw, 2.6rem); line-height: 1.15; font-weight: 600; text-transform: none; letter-spacing: -.03em; }
.camp-page .camp-documents-library-page ~ .camp-public-application-modal :is(.camp-public-application-header > div > span, .camp-public-application-privacy-copy > span) { font-size: .9rem; font-weight: 450; line-height: 1.65; color: #657060; }
.camp-page .camp-documents-library-page ~ .camp-public-application-modal .camp-public-application-privacy-action label { font-size: .9rem; font-weight: 500; line-height: 1.6; }
@media (min-width: 768px) {
  .camp-page .camp-documents-library-page ~ .camp-public-application-modal .camp-public-application-panel { min-height: min(47rem, calc(100svh - 3rem)); max-height: calc(100svh - 3rem); }
}
@media (max-width: 767px) {
  .camp-page .camp-documents-viewer .camp-document-modal-panel { display: block; }
  .camp-page .camp-documents-viewer .camp-document-modal-meta { overflow: visible; border-radius: .85rem .85rem 0 0; }
}
@media (max-width: 1023px) {
  .camp-page #top.camp-documents-library-page .camp-documents-generator { grid-template-columns: minmax(0, 1fr) 14rem; gap: 1.5rem; }
  .camp-page #top.camp-documents-library-page .camp-documents-generator-art { display: none; }
  .camp-page #top.camp-documents-library-page .camp-blank-application-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 639px) {
  .camp-page #top.camp-documents-library-page .camp-documents-index { gap: .25rem 1.25rem; padding: .6rem 0; margin-bottom: 1.5rem; }
  .camp-page #top.camp-documents-library-page .camp-documents-index strong { font-size: .8rem; }
  .camp-page #top.camp-documents-library-page .camp-documents-generator { grid-template-columns: minmax(0, 1fr); padding: 1.25rem; gap: 1.5rem; margin-bottom: 2.5rem; }
  .camp-page #top.camp-documents-library-page .camp-documents-generator-action { align-items: stretch; }
  .camp-page #top.camp-documents-library-page .camp-documents-generator-action :is(span, small) { text-align: left; }
  .camp-page #top.camp-documents-library-page .camp-blank-application-library > header { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .camp-page #top.camp-documents-library-page .camp-blank-application-library > header > span { grid-column: 1; grid-row: auto; justify-self: start; margin-top: .3rem; font-size: .875rem; }
  .camp-page #top.camp-documents-library-page .camp-blank-application-list article { grid-template-columns: 1.2rem minmax(0, 1fr); gap: .65rem; padding: 1rem 0; }
  .camp-page #top.camp-documents-library-page .camp-blank-application-list article > div { grid-column: 2; }
  .camp-page #top.camp-documents-library-page .camp-document-group-heading { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .camp-page #top.camp-documents-library-page .camp-document-group-heading > span { justify-self: start; font-size: .875rem; }
  .camp-page #top.camp-documents-library-page .camp-document-card { grid-template-columns: 1.8rem minmax(0, 1fr); align-items: start; gap: .8rem 1rem; padding: 1.2rem 1rem; }
  .camp-page #top.camp-documents-library-page .camp-document-file-icon { width: 1.8rem; }
  .camp-page #top.camp-documents-library-page .camp-document-card-content > strong { font-size: 1.05rem; }
  .camp-page #top.camp-documents-library-page .camp-document-card-bottom { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-top: .6rem; }
  .camp-page .camp-documents-viewer .camp-document-modal-meta { border-radius: .85rem .85rem 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .camp-page #top.camp-documents-library-page .camp-document-card { transition: none; }
}

/* About: a quiet illustrated story, with a compact timeline and open reading rows. */
.camp-page #top.camp-about-page-main { --about-ink: #2e4937; --about-muted: #657060; --about-line: rgb(49 77 40 / 15%); }
.camp-page #top.camp-about-page-main .camp-child-hero { padding-top: 7.1rem; padding-bottom: 2.25rem; }
.camp-page #top.camp-about-page-main .camp-child-hero-title h1 { color: var(--about-ink); font-size: clamp(2.4rem, 4.5vw, 5rem); line-height: 1.05; font-weight: 650; letter-spacing: -.045em; text-transform: none; }
.camp-page #top.camp-about-page-main .camp-child-hero-aside { max-width: 28rem; justify-self: end; }
.camp-page #top.camp-about-page-main .camp-child-hero-aside > p { color: var(--about-muted); font-weight: 450; }
.camp-page #top.camp-about-page-main .camp-child-hero-actions a { font-size: .85rem; font-weight: 600; }
.camp-page #top.camp-about-page-main [id] { scroll-margin-top: 7rem; }
.camp-page #top.camp-about-page-main :is(a, summary):focus-visible { outline: 2px solid #658548; outline-offset: 5px; border-radius: .2rem; }
.camp-page #top.camp-about-page-main .camp-about-navigation nav { display: flex; flex-wrap: wrap; gap: .35rem 2rem; padding: 1rem 0; border-block: 1px solid var(--about-line); }
.camp-page #top.camp-about-page-main .camp-about-navigation a { display: flex; align-items: center; min-height: 2.75rem; font-size: .9rem; font-weight: 550; color: #536b45; }
.camp-page #top.camp-about-page-main .camp-about-navigation a:hover { text-decoration: underline; text-underline-offset: .35rem; }
.camp-page #top.camp-about-page-main .camp-about-page-section { padding-top: 1rem; }
.camp-page #top.camp-about-page-main .camp-about-page-shell { display: block; }
.camp-page #top.camp-about-page-main :is(h2, h3) { color: var(--about-ink); font-weight: 600; text-transform: none; letter-spacing: -.035em; }
.camp-page #top.camp-about-page-main h2 { max-width: 20em; font-size: clamp(1.8rem, 2.8vw, 3.3rem); line-height: 1.12; }
.camp-page #top.camp-about-page-main h3 { font-size: 1.15rem; line-height: 1.35; letter-spacing: -.02em; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-copy, .camp-about-feature-copy, .camp-about-chronicle-heading, .camp-about-present > header) > p { color: #72804f; font-size: .65rem; line-height: 1.5; font-weight: 650; letter-spacing: .14em; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead, .camp-about-feature) { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: 2.5rem clamp(2rem, 5vw, 6rem); padding-block: clamp(2rem, 4vw, 4.5rem); }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-copy, .camp-about-feature-copy) { max-width: none; order: 0; }
.camp-page #top.camp-about-page-main .camp-about-lead-text { grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: 1.3rem; max-width: 36rem; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-text p, .camp-about-feature-copy > span, .camp-about-place-text p, .camp-about-team-points p) { color: var(--about-muted); font-size: .95rem; font-weight: 450; line-height: 1.7; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-visual, .camp-about-feature-visual, .camp-about-chronicle-visual) { width: 100%; margin: 0; padding: 0; filter: none; clip-path: none; overflow: visible; transform: none; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-visual, .camp-about-feature-visual, .camp-about-chronicle-visual)::after { display: none; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-visual, .camp-about-feature-visual, .camp-about-chronicle-visual) img { display: block; width: 100%; height: auto; aspect-ratio: 1.55; object-fit: cover; border-radius: .85rem; filter: saturate(.88) brightness(1.03); transform: none; transition: none; }
.camp-page #top.camp-about-page-main :is(.camp-about-lead-visual, .camp-about-chronicle-visual) figcaption { position: static; margin: .65rem 0 0; max-width: none; color: #79806d; font-size: .7rem; font-weight: 400; line-height: 1.5; letter-spacing: .015em; text-align: left; text-transform: none; text-shadow: none; }
.camp-page #top.camp-about-page-main .camp-about-core-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem; border: 0; margin-top: .25rem; }
.camp-page #top.camp-about-page-main .camp-about-core-list article { padding: 1.1rem 0 0; border: 0; border-top: 1px solid var(--about-line); box-shadow: none; background: none; }
.camp-page #top.camp-about-page-main .camp-about-core-list strong { font-size: 1rem; font-weight: 550; color: var(--about-ink); text-transform: none; letter-spacing: 0; }
.camp-page #top.camp-about-page-main .camp-about-core-list span { color: var(--about-muted); font-size: .85rem; font-weight: 400; line-height: 1.6; }
.camp-page #top.camp-about-page-main .camp-about-feature { border-top: 1px solid var(--about-line); }
.camp-page #top.camp-about-page-main .camp-about-feature-place { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.camp-page #top.camp-about-page-main .camp-about-map-visual img { aspect-ratio: 1.65; }
.camp-page #top.camp-about-page-main .camp-about-place-detail { margin-top: 1.4rem; border-block: 1px solid var(--about-line); }
.camp-page #top.camp-about-page-main .camp-about-place-detail summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 0; cursor: pointer; list-style: none; color: var(--about-ink); font-size: .9rem; font-weight: 550; }
.camp-page #top.camp-about-page-main .camp-about-place-detail summary::-webkit-details-marker { display: none; }
.camp-page #top.camp-about-page-main .camp-about-place-detail summary > span { font-size: 1.3rem; font-weight: 400; }
.camp-page #top.camp-about-page-main .camp-about-place-detail[open] summary > span { transform: rotate(45deg); }
.camp-page #top.camp-about-page-main .camp-about-place-text { grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: .25rem 0 1.25rem; }
.camp-page #top.camp-about-page-main .camp-about-place-text p { font-size: .875rem; }
.camp-page #top.camp-about-page-main .camp-about-inline-link { margin-top: 1.25rem; font-size: .85rem; font-weight: 550; text-transform: none; letter-spacing: 0; color: #496a3d; }
.camp-page #top.camp-about-page-main .camp-about-chronicle { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 6rem); padding-block: clamp(2.5rem, 4vw, 4.5rem); border-color: var(--about-line); }
.camp-page #top.camp-about-page-main .camp-about-chronicle-heading { max-width: none; }
.camp-page #top.camp-about-page-main :is(.camp-about-chronicle-heading, .camp-about-present > header) > span { color: var(--about-muted); font-size: .95rem; line-height: 1.65; font-weight: 450; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-visual { margin-top: 2rem; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-list { border: 0; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-list article { position: relative; display: block; border: 0; border-left: 1px solid var(--about-line); padding: 0 0 1.8rem 1.75rem; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-list article::before { content: ""; position: absolute; top: .3rem; left: -.25rem; width: .5rem; height: .5rem; border-radius: 50%; background: #9aa573; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-list article:last-child { padding-bottom: 0; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-list article > span { display: block; margin-bottom: .5rem; color: #967749; font-size: .7rem; font-weight: 600; text-transform: none; letter-spacing: .025em; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-list p { color: var(--about-muted); font-size: .875rem; font-weight: 400; line-height: 1.65; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-note { display: block; margin-top: 1.75rem; padding: 1.1rem 1.25rem; border-left: 2px solid #bda66b; border-radius: 0 .5rem .5rem 0; background: rgb(243 225 174 / 22%); }
.camp-page #top.camp-about-page-main .camp-about-chronicle-note strong { color: var(--about-ink); font-size: .85rem; font-weight: 550; text-transform: none; letter-spacing: 0; }
.camp-page #top.camp-about-page-main .camp-about-chronicle-note p { margin-top: .5rem; color: var(--about-muted); font-size: .8rem; font-weight: 400; line-height: 1.65; }
.camp-page #top.camp-about-page-main :is(.camp-about-feature-program, .camp-about-feature-team) { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.camp-page #top.camp-about-page-main :is(.camp-about-format-list, .camp-about-team-points) { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; margin: 0; border: 0; }
.camp-page #top.camp-about-page-main .camp-about-format-list article { min-width: 0; padding: 1.15rem 0 0; border: 0; border-top: 1px solid var(--about-line); background: none; box-shadow: none; }
.camp-page #top.camp-about-page-main .camp-about-format-list strong { color: var(--about-ink); font-size: 1rem; font-weight: 550; text-transform: none; letter-spacing: 0; }
.camp-page #top.camp-about-page-main .camp-about-format-list p { color: var(--about-muted); font-size: .85rem; font-weight: 400; line-height: 1.65; margin-top: .6rem; }
.camp-page #top.camp-about-page-main .camp-about-present { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 6rem); padding-block: clamp(2.5rem, 4vw, 4.5rem); border-color: var(--about-line); }
.camp-page #top.camp-about-page-main .camp-about-present-list { gap: 2rem; border: 0; }
.camp-page #top.camp-about-page-main .camp-about-present-list article { padding: 0; border: 0; }
.camp-page #top.camp-about-page-main .camp-about-present-list h3 { font-size: 1rem; }
.camp-page #top.camp-about-page-main .camp-about-present-list p { color: var(--about-muted); font-size: .875rem; font-weight: 400; line-height: 1.65; }
.camp-page #top.camp-about-page-main .camp-about-team-points { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 3rem; }
.camp-page #top.camp-about-page-main .camp-about-team-points p { padding-top: 1rem; border-top: 1px solid var(--about-line); font-size: .875rem; }
.camp-page #top.camp-about-page-main .camp-about-team-points strong { display: block; margin-bottom: .4rem; color: var(--about-ink); font-size: 1rem; font-weight: 550; }
.camp-page #top.camp-about-page-main .camp-about-detail-links { border-color: var(--about-line); margin-bottom: 2.5rem; }
.camp-page #top.camp-about-page-main .camp-about-detail-links a { position: relative; flex-direction: column; align-items: start; gap: .6rem; padding: 1.5rem 2rem; border-color: var(--about-line); }
.camp-page #top.camp-about-page-main .camp-about-detail-links a:first-child { padding-left: 0; }
.camp-page #top.camp-about-page-main .camp-about-detail-links a::after { content: "↗"; position: absolute; right: 1rem; top: 1.5rem; font-size: 1.2rem; color: #647951; }
.camp-page #top.camp-about-page-main .camp-about-detail-links span { font-size: .7rem; color: var(--about-muted); font-weight: 450; letter-spacing: .025em; text-transform: none; }
.camp-page #top.camp-about-page-main .camp-about-detail-links strong { color: var(--about-ink); font-size: 1rem; font-weight: 550; text-align: left; }
.camp-page #top.camp-about-page-main .camp-about-return-card { padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--about-line); border-radius: .9rem; background: linear-gradient(115deg, #e1ecd2, #f9f5e4); box-shadow: none; }
.camp-page #top.camp-about-page-main .camp-about-return-card::before,
.camp-page #top.camp-about-page-main .camp-about-return-card::after { display: none; }
.camp-page #top.camp-about-page-main .camp-about-return-card p { color: #72804f; font-size: .65rem; font-weight: 650; letter-spacing: .14em; }
.camp-page #top.camp-about-page-main .camp-about-return-card h2 { font-size: clamp(1.8rem, 2.7vw, 3rem); }
.camp-page #top.camp-about-page-main .camp-about-return-card span { color: var(--about-muted); font-size: .9rem; font-weight: 450; line-height: 1.65; }
.camp-page #top.camp-about-page-main .camp-about-return-actions a { font-size: .85rem; font-weight: 600; }
@media (max-width: 1023px) {
  .camp-page #top.camp-about-page-main :is(.camp-about-lead, .camp-about-feature, .camp-about-chronicle, .camp-about-present) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .camp-page #top.camp-about-page-main :is(.camp-about-core-list, .camp-about-format-list) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .camp-page #top.camp-about-page-main .camp-about-present-list { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 639px) {
  .camp-page #top.camp-about-page-main .camp-child-hero-aside { justify-self: stretch; }
  .camp-page #top.camp-about-page-main .camp-about-navigation nav { gap: 0 1.5rem; padding: .5rem 0; }
  .camp-page #top.camp-about-page-main .camp-about-navigation a { font-size: .8rem; }
  .camp-page #top.camp-about-page-main .camp-about-page-section { padding-top: .5rem; padding-bottom: 3rem; }
  .camp-page #top.camp-about-page-main :is(.camp-about-lead, .camp-about-feature, .camp-about-chronicle, .camp-about-present) { grid-template-columns: minmax(0, 1fr); padding-block: 2rem; gap: 1.5rem; }
  .camp-page #top.camp-about-page-main :is(.camp-about-lead-text p, .camp-about-feature-copy > span, .camp-about-chronicle-heading > span, .camp-about-present > header > span) { font-size: .9rem; }
  .camp-page #top.camp-about-page-main .camp-about-feature > .camp-about-feature-copy { grid-row: 1; }
  .camp-page #top.camp-about-page-main :is(.camp-about-lead-visual, .camp-about-feature-visual, .camp-about-chronicle-visual) { grid-row: auto; order: 0; }
  .camp-page #top.camp-about-page-main .camp-about-core-list { gap: 1rem 1.25rem; }
  .camp-page #top.camp-about-page-main .camp-about-core-list span { font-size: .8rem; }
  .camp-page #top.camp-about-page-main .camp-about-format-list { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .camp-page #top.camp-about-page-main .camp-about-team-points { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .camp-page #top.camp-about-page-main .camp-about-detail-links { grid-template-columns: minmax(0, 1fr); }
  .camp-page #top.camp-about-page-main .camp-about-detail-links a { padding: 1.2rem 0; border-left: 0; }
  .camp-page #top.camp-about-page-main .camp-about-detail-links a + a { border-top: 1px solid var(--about-line); }
  .camp-page #top.camp-about-page-main .camp-about-return-card { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}

/* Parents: an open, readable guide with optional detail, using the same page edge. */
.camp-page #top.camp-parents-main {
  --parent-ink: #2e4937;
  --parent-muted: #657060;
  --parent-line: rgb(49 77 40 / 15%);
  color: var(--parent-ink);
}
.camp-page #top.camp-parents-main .camp-child-hero { padding-top: 7.1rem; padding-bottom: 2.25rem; }
.camp-page #top.camp-parents-main .camp-child-hero-title h1 {
  color: var(--parent-ink); font-size: clamp(2.4rem, 4.5vw, 5rem);
  line-height: 1.04; font-weight: 650; text-transform: none; letter-spacing: -.045em;
}
.camp-page #top.camp-parents-main .camp-child-hero-aside { max-width: 28rem; justify-self: end; }
.camp-page #top.camp-parents-main .camp-child-hero-aside > p { color: var(--parent-muted); font-weight: 450; }
.camp-page #top.camp-parents-main .camp-child-hero-actions { gap: .65rem; }
.camp-page #top.camp-parents-main .camp-child-hero-actions a { font-weight: 600; font-size: .85rem; }
.camp-page #top.camp-parents-main :is(h2, h3) { color: var(--parent-ink); font-weight: 600; text-transform: none; letter-spacing: -.035em; }
.camp-page #top.camp-parents-main h2 { margin: 0; font-size: clamp(1.8rem, 2.65vw, 3rem); line-height: 1.12; }
.camp-page #top.camp-parents-main h3 { margin: 0; font-size: 1rem; line-height: 1.35; letter-spacing: -.015em; }
.camp-page #top.camp-parents-main [id] { scroll-margin-top: 7rem; }
.camp-page #top.camp-parents-main .parent-guide-eyebrow { margin: 0 0 .8rem; color: #72804f; font-size: .65rem; line-height: 1.5; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.camp-page #top.camp-parents-main .parent-guide-navigation { padding-bottom: 2.5rem; }
.camp-page #top.camp-parents-main .parent-guide-navigation nav { display: flex; flex-wrap: wrap; gap: .35rem 2rem; padding: 1rem 0; border-block: 1px solid var(--parent-line); }
.camp-page #top.camp-parents-main .parent-guide-navigation a { display: flex; align-items: center; min-height: 2.75rem; font-size: .9rem; font-weight: 550; color: #536b45; }
.camp-page #top.camp-parents-main .parent-guide-navigation a:hover { color: #253f2c; text-decoration: underline; text-underline-offset: .35rem; }
.camp-page #top.camp-parents-main .parent-guide-conditions { padding-block: 1rem 2.25rem; }
.camp-page #top.camp-parents-main .parent-guide-condition-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 2rem; }
.camp-page #top.camp-parents-main .parent-guide-condition-heading > p { max-width: 32rem; justify-self: end; margin: 0; color: var(--parent-muted); font-size: .95rem; line-height: 1.6; }
.camp-page #top.camp-parents-main .parent-guide-facts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.5rem; margin: 2rem 0 1.25rem; padding-block: 1.5rem; }
.camp-page #top.camp-parents-main .parent-guide-facts > div { min-width: 0; padding-left: 1.5rem; border-left: 1px solid var(--parent-line); }
.camp-page #top.camp-parents-main .parent-guide-facts > div:first-child { padding-left: 0; border-left: 0; }
.camp-page #top.camp-parents-main .parent-guide-facts dt { font-size: .8rem; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-facts dd { margin: .65rem 0 .55rem; font-size: clamp(1.6rem, 2.8vw, 3rem); line-height: 1.1; letter-spacing: -.04em; font-weight: 550; white-space: nowrap; }
.camp-page #top.camp-parents-main .parent-guide-facts dd small { font-size: .85rem; font-weight: 450; letter-spacing: 0; }
.camp-page #top.camp-parents-main .parent-guide-facts p { margin: .55rem 0 0; max-width: 15rem; font-size: .75rem; font-weight: 400; letter-spacing: 0; white-space: normal; color: var(--parent-muted); line-height: 1.5; }
.camp-page #top.camp-parents-main .parent-guide-section { padding-block: clamp(2.25rem, 4vw, 4rem); }
.camp-page #top.camp-parents-main .parent-guide-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: clamp(2rem, 6vw, 7rem); padding-top: 2.75rem; border-top: 1px solid var(--parent-line); }
.camp-page #top.camp-parents-main .parent-guide-heading { min-width: 0; }
.camp-page #top.camp-parents-main .parent-guide-heading > p:not(.parent-guide-eyebrow) { margin: 1rem 0 0; max-width: 28rem; font-size: .95rem; line-height: 1.65; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-backpack { display: block; width: min(76%, 17rem); height: 15rem; margin: 1.6rem auto 0; object-fit: contain; mix-blend-mode: multiply; }
.camp-page #top.camp-parents-main .parent-guide-disclosure { border-bottom: 1px solid var(--parent-line); }
.camp-page #top.camp-parents-main .parent-guide-disclosure summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 5.2rem; padding: 1.25rem 0; cursor: pointer; list-style: none; }
.camp-page #top.camp-parents-main .parent-guide-disclosure summary::-webkit-details-marker { display: none; }
.camp-page #top.camp-parents-main .parent-guide-disclosure summary strong { display: block; font-size: 1.05rem; font-weight: 600; line-height: 1.35; letter-spacing: -.02em; }
.camp-page #top.camp-parents-main .parent-guide-disclosure summary small { display: block; margin-top: .35rem; color: var(--parent-muted); font-size: .8rem; font-weight: 400; line-height: 1.5; }
.camp-page #top.camp-parents-main .parent-guide-disclosure summary:hover strong { color: #648343; }
.camp-page #top.camp-parents-main .parent-guide-toggle { position: relative; flex: 0 0 2rem; width: 2rem; height: 2rem; border: 1px solid var(--parent-line); border-radius: 50%; }
.camp-page #top.camp-parents-main .parent-guide-toggle::before,
.camp-page #top.camp-parents-main .parent-guide-toggle::after { content: ""; position: absolute; width: .65rem; height: 1px; background: currentColor; top: calc(50% - .5px); left: calc(50% - .325rem); }
.camp-page #top.camp-parents-main .parent-guide-toggle::after { transform: rotate(90deg); }
.camp-page #top.camp-parents-main details[open] > summary .parent-guide-toggle::after { display: none; }
.camp-page #top.camp-parents-main :is(summary, a):focus-visible { outline: 2px solid #658548; outline-offset: 5px; border-radius: .2rem; }
.camp-page #top.camp-parents-main .parent-guide-detail { padding: .5rem 0 1.75rem; font-size: .9rem; line-height: 1.65; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-condition-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.camp-page #top.camp-parents-main .parent-guide-detail p { margin: .5rem 0 0; }
.camp-page #top.camp-parents-main .parent-guide-detail :is(b, strong) { color: var(--parent-ink); font-weight: 550; }
.camp-page #top.camp-parents-main .parent-guide-item-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2.5rem; list-style: none; margin: 0; padding: 0; }
.camp-page #top.camp-parents-main .parent-guide-item-list strong,
.camp-page #top.camp-parents-main .parent-guide-item-list span { display: block; }
.camp-page #top.camp-parents-main .parent-guide-item-list span { margin-top: .2rem; }
.camp-page #top.camp-parents-main .parent-guide-numbered { display: grid; gap: 1.15rem; margin: 0; padding: 0; list-style: none; }
.camp-page #top.camp-parents-main .parent-guide-numbered li { display: flex; gap: 1rem; align-items: baseline; }
.camp-page #top.camp-parents-main .parent-guide-numbered b { flex: 0 0 1.5rem; color: #849366; font-size: .7rem; }
.camp-page #top.camp-parents-main .parent-guide-numbered strong,
.camp-page #top.camp-parents-main .parent-guide-numbered div > span { display: block; }
.camp-page #top.camp-parents-main .parent-guide-prose { display: grid; gap: 1.25rem; }
.camp-page #top.camp-parents-main .parent-guide-prose ul { margin: .65rem 0 0; padding-left: 1.1rem; list-style: disc; }
.camp-page #top.camp-parents-main .parent-guide-prose li + li { margin-top: .5rem; }
.camp-page #top.camp-parents-main .parent-guide-note { margin: 1.5rem 0 0; padding: 1.1rem 1.25rem; background: rgb(243 225 174 / 30%); border-left: 2px solid #bea96a; border-radius: 0 .5rem .5rem 0; font-size: .875rem; line-height: 1.65; }
.camp-page #top.camp-parents-main .parent-guide-day-preview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; padding: .25rem 0 1.6rem; }
.camp-page #top.camp-parents-main .parent-guide-day-preview > div { display: flex; flex-direction: column; align-items: start; gap: .6rem; }
.camp-page #top.camp-parents-main .parent-guide-day-preview span { color: #8a793d; font-size: .7rem; }
.camp-page #top.camp-parents-main .parent-guide-day-preview strong { font-size: .95rem; font-weight: 550; line-height: 1.4; }
.camp-page #top.camp-parents-main .parent-guide-day-preview small { font-size: .75rem; line-height: 1.5; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-footnote { margin: 1.25rem 0 0; font-size: .8rem; line-height: 1.65; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-schedule { display: grid; gap: 1.5rem; }
.camp-page #top.camp-parents-main .parent-guide-schedule h3 { display: flex; justify-content: space-between; gap: 1rem; }
.camp-page #top.camp-parents-main .parent-guide-schedule h3 small { font-size: .75rem; font-weight: 400; }
.camp-page #top.camp-parents-main .parent-guide-schedule dl { margin: .75rem 0 0; }
.camp-page #top.camp-parents-main .parent-guide-schedule dl > div { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; padding: .55rem 0; border-top: 1px solid rgb(49 77 40 / 8%); }
.camp-page #top.camp-parents-main .parent-guide-schedule dt { font-variant-numeric: tabular-nums; font-size: .8rem; }
.camp-page #top.camp-parents-main .parent-guide-schedule dd { margin: 0; }
.camp-page #top.camp-parents-main .parent-guide-care { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 2.5rem; }
.camp-page #top.camp-parents-main .parent-guide-care p { margin: .6rem 0 0; font-size: .9rem; line-height: 1.65; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-phone { display: inline-flex; align-items: center; gap: 1.25rem; margin-top: 1.5rem; font-size: clamp(1rem, 1.5vw, 1.4rem); font-weight: 550; }
.camp-page #top.camp-parents-main .parent-guide-text-link { display: inline-flex; align-items: baseline; gap: 1rem; margin-top: 1.25rem; font-size: .85rem; text-decoration: underline; text-underline-offset: .3rem; }
.camp-page #top.camp-parents-main .parent-guide-health-note { margin: 0 0 1rem; }
.camp-page #top.camp-parents-main .parent-guide-health-note > strong { font-size: 1rem; font-weight: 600; }
.camp-page #top.camp-parents-main .parent-guide-health-note p { margin: .6rem 0 0; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-docs { padding-bottom: 4rem; }
.camp-page #top.camp-parents-main .parent-guide-docs-panel { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; gap: 3rem; padding: clamp(1.5rem, 3vw, 3rem); background: linear-gradient(115deg, #e1ecd2, #f9f5e4); border: 1px solid var(--parent-line); border-radius: .9rem; }
.camp-page #top.camp-parents-main .parent-guide-docs-panel h2 { max-width: 17em; }
.camp-page #top.camp-parents-main .parent-guide-docs-panel > div > p:not(.parent-guide-eyebrow) { max-width: 33rem; margin: 1rem 0 0; font-size: .9rem; line-height: 1.65; color: var(--parent-muted); }
.camp-page #top.camp-parents-main .parent-guide-doc-links { display: grid; }
.camp-page #top.camp-parents-main .parent-guide-doc-links a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--parent-line); font-size: .95rem; font-weight: 550; }
.camp-page #top.camp-parents-main .parent-guide-doc-links a:first-child { background: #315d3b; color: #fffce9; border: 0; border-radius: .5rem; padding: 1rem 1.25rem; margin-bottom: .5rem; }
@media (max-width: 1023px) {
  .camp-page #top.camp-parents-main .parent-guide-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.75rem; }
  .camp-page #top.camp-parents-main .parent-guide-facts > div { border-left: 0; padding-left: 0; }
  .camp-page #top.camp-parents-main .parent-guide-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: 2rem; }
  .camp-page #top.camp-parents-main .parent-guide-condition-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .camp-page #top.camp-parents-main .parent-guide-item-list { grid-template-columns: minmax(0, 1fr); }
  .camp-page #top.camp-parents-main .parent-guide-day-preview { gap: 1rem; }
}
@media (max-width: 639px) {
  .camp-page #top.camp-parents-main .camp-child-hero-aside { justify-self: stretch; }
  .camp-page #top.camp-parents-main .parent-guide-navigation { padding-bottom: 1rem; }
  .camp-page #top.camp-parents-main .parent-guide-navigation nav { gap: 0 1.5rem; padding: .5rem 0; }
  .camp-page #top.camp-parents-main .parent-guide-navigation a { font-size: .8rem; }
  .camp-page #top.camp-parents-main .parent-guide-condition-heading { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .camp-page #top.camp-parents-main .parent-guide-condition-heading > p { justify-self: start; font-size: .875rem; }
  .camp-page #top.camp-parents-main .parent-guide-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; gap: 1.5rem; }
  .camp-page #top.camp-parents-main .parent-guide-facts dd { font-size: 2rem; }
  .camp-page #top.camp-parents-main .parent-guide-facts dd small { font-size: .75rem; }
  .camp-page #top.camp-parents-main .parent-guide-conditions { padding-bottom: 1rem; }
  .camp-page #top.camp-parents-main .parent-guide-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding-top: 2rem; }
  .camp-page #top.camp-parents-main .parent-guide-section { padding-block: 1.5rem; }
  .camp-page #top.camp-parents-main .parent-guide-heading > p:not(.parent-guide-eyebrow) { font-size: .875rem; }
  .camp-page #top.camp-parents-main .parent-guide-heading:has(.parent-guide-backpack) { display: grid; grid-template-columns: minmax(0, 1fr) 5rem; column-gap: .75rem; align-items: center; }
  .camp-page #top.camp-parents-main .parent-guide-heading:has(.parent-guide-backpack) > :not(img) { grid-column: 1; }
  .camp-page #top.camp-parents-main .parent-guide-backpack { grid-column: 2; grid-row: 1 / 4; width: 100%; height: 7rem; margin: 0; }
  .camp-page #top.camp-parents-main .parent-guide-condition-details,
  .camp-page #top.camp-parents-main .parent-guide-care { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .camp-page #top.camp-parents-main .parent-guide-day-preview { gap: .8rem; }
  .camp-page #top.camp-parents-main .parent-guide-day-preview strong { font-size: .85rem; }
  .camp-page #top.camp-parents-main .parent-guide-day-preview small { font-size: .7rem; }
  .camp-page #top.camp-parents-main .parent-guide-disclosure summary { gap: 1rem; }
  .camp-page #top.camp-parents-main .parent-guide-disclosure summary strong { font-size: 1rem; }
  .camp-page #top.camp-parents-main .parent-guide-schedule dl > div { grid-template-columns: 6rem minmax(0, 1fr); gap: .75rem; }
  .camp-page #top.camp-parents-main .parent-guide-schedule dt { font-size: .7rem; }
  .camp-page #top.camp-parents-main .parent-guide-docs-panel { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .camp-page #top.camp-parents-main .parent-guide-docs { padding-bottom: 3rem; }
}

/* Draw disclosure marks geometrically, independent of the font baseline. */
.camp-page #top:is(.camp-apply-main, .camp-about-page-main) :is(.application-guide-checks summary > b, .application-guide-extra summary > span, .camp-about-place-detail summary > span) {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  transform-origin: 50% 50%;
}
.camp-page #top:is(.camp-apply-main, .camp-about-page-main) :is(.application-guide-extra summary > span, .camp-about-place-detail summary > span) { width: 1.5rem; height: 1.5rem; }
.camp-page #top:is(.camp-apply-main, .camp-about-page-main) :is(.application-guide-checks summary > b, .application-guide-extra summary > span, .camp-about-place-detail summary > span)::before,
.camp-page #top:is(.camp-apply-main, .camp-about-page-main) :is(.application-guide-checks summary > b, .application-guide-extra summary > span, .camp-about-place-detail summary > span)::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: .7rem;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.camp-page #top:is(.camp-apply-main, .camp-about-page-main) :is(.application-guide-checks summary > b, .application-guide-extra summary > span, .camp-about-place-detail summary > span)::after { transform: translate(-50%, -50%) rotate(90deg); }
.camp-page #top .camp-parent-question summary::after {
  content: "";
  padding: 0;
  background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
  background-size: .7rem 1px, 1px .7rem;
  background-position: center;
  background-repeat: no-repeat;
}
.camp-page :is(.camp-advantage-modal-close, .camp-shift-modal-close, .camp-public-application-close, .camp-document-modal-close) {
  padding: 0;
  line-height: 0;
}
.camp-page :is(.camp-advantage-modal-close, .camp-shift-modal-close, .camp-public-application-close, .camp-document-modal-close) > svg {
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  transform-origin: center;
}

/* Shared interior system: readable type, generous artwork and quiet surfaces. */
.camp-page #top.camp-interior {
  --interior-ink: #2e4937;
  --interior-muted: #657060;
  --interior-line: rgb(49 77 40 / 15%);
}
.camp-page #top.camp-interior h1 {
  color: var(--interior-ink);
  font-size: clamp(2.3rem, 4.1vw, 4.8rem);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.045em;
  text-transform: none;
  text-wrap: balance;
}
.camp-page #top.camp-interior h2 {
  color: var(--interior-ink);
  font-size: clamp(1.8rem, 2.7vw, 3rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.035em;
  text-transform: none;
  text-wrap: balance;
}
.camp-page #top.camp-interior h3 {
  color: var(--interior-ink);
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.02em;
  text-transform: none;
}
.camp-page #top.camp-interior :is(p, dd) { font-weight: 400; line-height: 1.7; }
.camp-page #top.camp-interior :is(strong, dt) { font-weight: 600; }
.camp-page #top.camp-interior :is(header, [class$="-copy"], [class$="-heading"]) > p:first-child {
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .14em;
  line-height: 1.4;
}
.camp-page #top.camp-interior :is(header, [class$="-copy"], [class$="-heading"]) > span,
.camp-page #top.camp-interior :is(.camp-child-hero-aside, .camp-program-chapter-details) :is(p, span) {
  font-weight: 400;
  line-height: 1.7;
}
.camp-page #top.camp-interior .camp-child-hero-title > p { font-size: .68rem; font-weight: 650; letter-spacing: .14em; }
.camp-page #top.camp-interior .camp-child-hero-actions a { font-size: .85rem; font-weight: 550; min-height: 2.8rem; padding: .8rem 1.2rem; }
.camp-page #top.camp-interior .camp-child-hero-actions a:first-child { background: #315d3b; color: #fffce9; }
/* The same image column on every interior page, including the earlier guides. */
body.camp-page #top .camp-child-hero .camp-child-hero-layout {
  grid-template-columns: clamp(9rem, 13vw, 14rem) minmax(0, 1fr) minmax(17rem, .68fr);
  gap: clamp(1.25rem, 2.5vw, 3rem);
}
body.camp-page #top .camp-child-hero .camp-child-hero-figure { width: 100%; }
.camp-page #top .camp-section-index {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 2rem;
  margin-top: 2rem;
  padding-block: .75rem;
  border-top: 1px solid rgb(49 77 40 / 15%);
  border-bottom: 1px solid rgb(49 77 40 / 15%);
}
.camp-page #top .camp-section-index a { padding-block: .5rem; font-size: .85rem; font-weight: 500; color: #466047; }
.camp-page #top .camp-section-index a:hover { color: #263e2c; text-decoration: underline; text-underline-offset: .3rem; }
.camp-page #top .camp-section-index a:focus-visible { outline: 2px solid #648957; outline-offset: 4px; border-radius: .2rem; }
.camp-page #top.camp-interior .camp-child-hero:has(.camp-section-index) { padding-bottom: .5rem; }
.camp-page #top.camp-interior :is(.camp-staff-shell, .camp-facilities-shell, .camp-living-shell, .camp-accessibility-shell, .camp-education-shell) { gap: clamp(2.75rem, 5vw, 5rem); }
.camp-page #top.camp-interior :is(.camp-staff-intro, .camp-facilities-intro, .camp-living-intro, .camp-accessibility-intro, .camp-education-opening) { align-items: start; padding-block: 1.5rem 2.5rem; }
.camp-page #top.camp-interior :is(.camp-health-shell, .camp-safety-shell, .camp-services-page-shell) > section { padding-block: clamp(2rem, 4vw, 4rem); }
.camp-page #top.camp-interior :is(figure, .camp-program-chapter-scene) { clip-path: none; }
.camp-page #top.camp-interior :is(.camp-health-care-visual, .camp-contacts-route-map, .camp-staff-day figure, .camp-facilities-living figure, .camp-leadership-director-portrait, .camp-leadership-team-visual) {
  border-radius: .9rem;
  transform: none;
  filter: none;
}
.camp-page #top.camp-interior :is(.camp-health-care-visual, .camp-staff-day figure, .camp-facilities-living figure, .camp-leadership-team-visual) img { clip-path: none; border-radius: .9rem; }
.camp-page #top.camp-interior :is(.camp-health-certificate-notes, .camp-health-medicine-alert, .camp-leadership-director, .camp-leadership-team-note, .camp-contacts-secondary-channels > a) {
  clip-path: none;
  background: rgb(255 253 243 / 60%);
  border-radius: .9rem;
  box-shadow: none;
}
.camp-page #top.camp-interior :is(.camp-health-certificate-notes, .camp-health-medicine-alert, .camp-leadership-director, .camp-leadership-team-note)::before,
.camp-page #top.camp-interior :is(.camp-health-certificate-notes, .camp-health-medicine-alert, .camp-leadership-director, .camp-leadership-team-note)::after { content: none; }
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm, .camp-accessibility-next, .camp-education-next, .camp-programs-cta-line) {
  padding: clamp(1.5rem, 3vw, 3rem);
  border: 1px solid var(--interior-line);
  border-radius: .9rem;
  background: linear-gradient(115deg, #e1ecd2, #f9f5e4);
}
/* Long illustrated instructions retain their pictures beside the steps. */
.camp-page #top.camp-interior .camp-services-steps { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 3rem; align-items: center; }
.camp-page #top.camp-interior .camp-services-steps > .camp-services-page-heading { grid-column: 1 / -1; }
.camp-page #top.camp-interior .camp-services-steps-visual { width: 100%; margin: 0; }
.camp-page #top.camp-interior .camp-services-steps-list { grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; }
.camp-page #top.camp-interior .camp-services-steps-list li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); column-gap: .75rem; padding: 1.2rem 0; border-top: 1px solid var(--interior-line); }
.camp-page #top.camp-interior .camp-services-steps-list li > span { grid-row: 1 / 3; margin: .3rem 0 0; }
.camp-page #top.camp-interior .camp-services-steps-list li :is(h3, p) { grid-column: 2; margin-top: 0; }
.camp-page #top.camp-interior .camp-services-steps-list li p { margin-top: .4rem; }
.camp-page #top.camp-interior .camp-services-steps-list::before,
.camp-page #top.camp-interior .camp-services-steps-list li::before { content: none; }
.camp-page #top.camp-interior .camp-services-steps-action { grid-column: 2; justify-self: start; }
.camp-page #top.camp-interior .camp-services-price-copy > strong { font-size: clamp(3.5rem, 7vw, 6rem); font-weight: 550; letter-spacing: -.045em; color: #607a43; }
.camp-page #top.camp-interior .camp-services-price-description { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.camp-page #top.camp-interior .camp-services-price-description > span { font-size: .875rem; font-weight: 450; padding: .75rem 1rem; border-left: 2px solid #baa574; }
/* Contacts and official data use flat, aligned cards. */
.camp-page #top.camp-interior .camp-contacts-call-card { clip-path: none; background: #31513c; border-radius: .9rem; padding: clamp(1.5rem, 3vw, 3rem); }
.camp-page #top.camp-interior .camp-contacts-call-card::before,
.camp-page #top.camp-interior .camp-contacts-call-card::after { content: none; }
.camp-page #top.camp-interior .camp-contacts-call-card h3 { color: #fffce9; font-size: clamp(1.7rem, 2.8vw, 2.7rem); max-width: 18ch; }
.camp-page #top.camp-interior .camp-contacts-call-card > a { font-size: clamp(1.65rem, 3vw, 3rem); font-weight: 550; }
.camp-page #top.camp-interior .camp-contacts-secondary-channels strong { font-size: clamp(1.2rem, 2vw, 1.75rem); }
.camp-page #top.camp-interior .camp-organization-paper { background: rgb(255 253 244 / 65%); border: 1px solid var(--interior-line); border-radius: .9rem; transform: none; filter: none; }
.camp-page #top.camp-interior .camp-organization-paper::before,
.camp-page #top.camp-interior .camp-organization-paper::after,
.camp-page #top.camp-interior .camp-organization-sheet-tape { display: none; }
.camp-page #top.camp-interior .camp-organization-sheet-head,
.camp-page #top.camp-interior .camp-organization-paper-main .camp-organization-sheet-copy { padding: 0; background: none; }
.camp-page #top.camp-interior .camp-organization-sheet-copy h3 { font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.25; }
.camp-page #top.camp-interior .camp-organization-sheet-stamp { justify-self: start; border-style: solid; transform: none; }
.camp-page #top.camp-interior .camp-organization-data-list dd { overflow-wrap: anywhere; }
.camp-page #top.camp-interior .camp-privacy-article { background: rgb(255 253 245 / 48%); border-radius: .9rem; }
.camp-page #top.camp-interior .camp-privacy-article h2 { font-size: clamp(1.55rem, 2.1vw, 2.25rem); }
.camp-page #top.camp-interior .camp-privacy-article p { max-width: 80ch; }
/* Program artwork has its own space, so text no longer covers the scene. */
.camp-page #top.camp-interior .camp-program-chapter-scene { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); height: auto; min-height: 24rem; border-radius: .9rem; background: rgb(255 253 244 / 60%); }
.camp-page #top.camp-interior .camp-program-chapter-scene > img { position: static; grid-column: 2; grid-row: 1; width: 100%; height: 100%; min-height: 24rem; z-index: auto; object-fit: cover; transform: none; }
.camp-page #top.camp-interior .camp-program-chapter-copy { position: static; grid-column: 1; grid-row: 1; align-self: center; width: auto; min-width: 0; padding: clamp(1.5rem, 3vw, 3rem); transform: none; }
.camp-page #top.camp-interior .camp-program-chapter-copy > strong { max-width: none; font-size: clamp(2rem, 3.5vw, 3.75rem); font-weight: 600; line-height: 1.1; letter-spacing: -.035em; text-transform: none; color: var(--interior-ink); }
.camp-page #top.camp-interior .camp-program-chapter-copy > span:nth-child(3) { font-weight: 400; line-height: 1.7; }
.camp-page #top.camp-interior .camp-program-chapter-copy > em { font-weight: 550; line-height: 1.4; text-transform: none; }
.camp-page #top.camp-interior .camp-program-chapter-wash,
.camp-page #top.camp-interior .camp-program-chapter-scene::after { display: none; }
.camp-page #top.camp-interior .camp-program-chapter-format li { font-weight: 500; text-transform: none; }
.camp-page #top.camp-interior .camp-program-chapter-details p { font-weight: 650; font-size: .65rem; }
@media (max-width: 1023px) {
  body.camp-page #top .camp-child-hero .camp-child-hero-layout { grid-template-columns: 9rem minmax(0, 1fr); }
  body.camp-page #top .camp-child-hero .camp-child-hero-aside { grid-column: 1 / -1; max-width: 45rem; }
  .camp-page #top.camp-interior .camp-program-chapter-details { grid-template-columns: minmax(0, 1fr); }
  .camp-page #top.camp-interior .camp-program-chapter-details > section + section { border-left: 0; border-top: 1px solid var(--interior-line); }
}
@media (max-width: 767px) {
  body.camp-page #top .camp-child-hero .camp-child-hero-layout { grid-template-columns: 6rem minmax(0, 1fr); gap: 1.1rem; }
  .camp-page #top.camp-interior h1 { font-size: clamp(1.9rem, 6.5vw, 2.8rem); }
  .camp-page #top.camp-interior h2 { font-size: 1.85rem; }
  .camp-page #top .camp-section-index { gap: 0 1.35rem; margin-top: 1.5rem; }
  .camp-page #top .camp-section-index a { font-size: .8rem; }
  .camp-page #top.camp-interior .camp-services-steps { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .camp-page #top.camp-interior .camp-services-steps-action { grid-column: 1; }
  .camp-page #top.camp-interior .camp-program-chapter-scene { grid-template-columns: minmax(0, 1fr); }
  .camp-page #top.camp-interior .camp-program-chapter-scene > img { grid-column: 1; grid-row: 1; height: auto; min-height: 0; aspect-ratio: 1.35; }
  .camp-page #top.camp-interior .camp-program-chapter-copy { grid-row: 2; padding: 1.5rem; }
  .camp-page #top.camp-interior .camp-program-chapter-copy > strong { font-size: 2rem; }
  .camp-page #top.camp-interior .camp-programs-flow-layout { grid-template-columns: minmax(0, 1fr); }
  .camp-page #top.camp-parents-main .parent-guide-heading:has(.parent-guide-backpack) { display: block; }
  .camp-page #top.camp-parents-main .parent-guide-backpack { width: min(85%, 19rem); height: 14rem; margin: 1rem auto; }
}

/* Keep both light and dark panels legible under the shared type rules. */
.camp-page #top.camp-interior :is(.camp-facilities-care, .camp-accessibility-decision, .camp-education-reflection) { clip-path: none; border-radius: .9rem; }
.camp-page #top.camp-interior :is(.camp-facilities-care, .camp-accessibility-decision, .camp-education-reflection) :is(h2, h3) { color: #fffced; }
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm) { clip-path: none; }
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm)::before,
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm)::after { content: none; }
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm) :is(p, span) { color: #56674f; font-weight: 400; }
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm) a { color: #31513c; border-color: rgb(49 77 40 / 25%); font-weight: 550; }
.camp-page #top.camp-interior :is(.camp-services-contact-actions, .camp-safety-family-actions, .camp-staff-confirm-actions, .camp-facilities-confirm-actions, .camp-living-confirm-actions) a:first-child { background: #315d3b; border-color: #315d3b; color: #fffce9; }
.camp-page #top.camp-interior :is(.camp-services-contact, .camp-safety-family, .camp-staff-confirm, .camp-facilities-confirm, .camp-living-confirm) a:hover { background: #24442e; color: #fffce9; }
.camp-page #top.camp-interior .camp-safety-family-list,
.camp-page #top.camp-interior .camp-safety-family-list article { border-color: var(--interior-line); }
.camp-page #top.camp-interior :is(.camp-health-shell, .camp-safety-shell, .camp-services-page-shell, .camp-staff-shell, .camp-facilities-shell, .camp-living-shell, .camp-accessibility-shell, .camp-education-shell) > section:first-child { border-top: 0; padding-top: 1.5rem; }
.camp-page #top.camp-interior .camp-services-steps-action { margin-top: 0; }
.camp-page #top.camp-interior :is(.camp-facilities-activity, .camp-education-practice, .camp-accessibility-conversation) figure { border-radius: .9rem; overflow: hidden; }
.camp-page #top.camp-interior :is(.camp-living-meal-list, .camp-facilities-activity) :is(dd, li > span:last-child) { font-weight: 400; }
@media (max-width: 767px) {
  .camp-page #top.camp-interior .camp-programs-index > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; }
  .camp-page #top.camp-interior .camp-programs-index a { border-left: 0; border-top: 1px solid var(--interior-line); padding: .75rem 0; }
}

/* Album cards: readable captions below the artwork. */
body.camp-page #top .camp-child-hero .camp-child-hero-figure-parents { height: 12rem; aspect-ratio: auto; }
@layer components {
  body.camp-page #top .camp-child-hero-figure-parents img { max-height: 100% !important; object-fit: contain !important; }
}
@media (max-width: 639px) {
  body.camp-page #top .camp-child-hero .camp-child-hero-figure-parents { height: 8.5rem; }
}
.camp-page #top.camp-interior .camp-safety-family { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
.camp-page #top.camp-interior .camp-safety-family-copy { max-width: 48rem; }
.camp-page #top.camp-interior .camp-safety-family-copy > span { max-width: none; margin-top: 1rem; }
.camp-page #top.camp-interior .camp-safety-family-actions { margin-top: 0; }

/* Hand-off from the public site to a voucher holder's private trip. */
.camp-page #top.camp-documents-library-page .camp-documents-cabinet { grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr) minmax(13rem, .5fr); align-items:center; }
.camp-page #top.camp-documents-library-page .camp-documents-cabinet .camp-documents-generator-art img { max-height:12rem; }
@media (max-width: 1024px) { .camp-page #top.camp-documents-library-page .camp-documents-cabinet { grid-template-columns:minmax(0,1fr) 14rem; } }
.camp-page .camp-paperwork-link, .camp-page .camp-documents-cabinet .camp-documents-generator-action a { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .85rem 1.1rem; margin-top: .8rem; border-radius: .5rem; background: #315d3b; color: #fff; font-weight: 600; text-decoration: none; }
.camp-page .camp-paperwork-link:focus-visible, .camp-page .camp-documents-cabinet a:focus-visible { outline: 3px solid #b09c58; outline-offset: 3px; }
@media (max-width: 640px) { .camp-page #top.camp-documents-library-page .camp-documents-cabinet { grid-template-columns: minmax(0, 1fr); } }

/* Keep the document background still while reading its preview. */
html.camp-document-modal-open, html.camp-document-modal-open body { overflow:hidden; }

/* Preview is the primary action; file formats remain available beside it. */
.camp-page #top.camp-documents-library-page .camp-blank-application-list article > div { flex-wrap:wrap; gap:.4rem; }
.camp-page #top.camp-documents-library-page .camp-blank-preview { display:inline-flex; align-items:center; justify-content:center; min-height:2.75rem; padding:.6rem .8rem; border:1px solid #315d3b; border-radius:.4rem; background:#315d3b; color:#fffce9; font:inherit; font-size:.75rem; font-weight:550; cursor:pointer; }
.camp-page #top.camp-documents-library-page .camp-blank-preview:hover { background:#244b36; }
.camp-page #top.camp-documents-library-page .camp-blank-preview:focus-visible { outline:3px solid #aa955f; outline-offset:3px; }
@media (min-width:1025px) and (max-width:1279px) {
  .camp-page #top.camp-documents-library-page .camp-blank-application-list article { grid-template-columns:1.4rem minmax(0,1fr); }
  .camp-page #top.camp-documents-library-page .camp-blank-application-list article > div { grid-column:2; }
}
