/* Public reading system. The existing stylesheet owns functional widgets;
   this sheet replaces their visual presentation without touching admin pages. */
body.public-site {
  --pink: #a52e61;
  --pink-dark: #86254f;
  --pale: #f8f0f3;
  --ink: #252b2b;
  --muted: #626a68;
  --line: #e1e5e0;
  --paper: #faf9f6;
  --display-font: var(--font);
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.75;
  font-weight: 400;
}
.public-site *, .public-site *::before, .public-site *::after { box-sizing: border-box; }
body.public-site :is(h1,h2,h3,h4) { font-family: var(--font); font-weight: 700; letter-spacing: -.025em; line-height: 1.35; text-wrap: pretty; overflow-wrap: break-word; }
body.public-site h1 { font-size: clamp(30px,3.3vw,40px); margin: 0 0 14px; max-width: 28ch; }
body.public-site h2 { font-size: 25px; margin: 0 0 14px; }
body.public-site h3 { font-size: 20px; margin: 0 0 10px; }
body.public-site p { font-size: 16px; line-height: 1.75; margin-bottom: 18px; }
body.public-site em { font-style: normal; color: inherit; }
body.public-site a { text-underline-offset: 4px; }
body.public-site .wrap { width: min(1160px,calc(100% - 64px)); }
body.public-site main { min-height: 50vh; }
body.public-site .section { padding: 40px 0; }
body.public-site .section-head, body.public-site .section-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; }
body.public-site .section-head h2, body.public-site .section-heading h2 { margin: 0; }
body.public-site .page-heading, body.public-site .detail-header { padding: 28px 0 26px; max-width: 760px; }
body.public-site .page-heading > p, body.public-site .detail-header > p { color: var(--muted); font-size: 16px; max-width: 65ch; margin-bottom: 0; }
body.public-site .page-heading > .eyebrow, body.public-site .steps-section .eyebrow, body.public-site .requirements .eyebrow, body.public-site .area-discovery .eyebrow { display: none; }
body.public-site .breadcrumbs { padding-top: 22px; font-size: 12px; line-height: 1.6; gap: 10px; color: var(--muted); overflow-wrap: anywhere; }
body.public-site .breadcrumbs > [aria-current] { color: var(--ink); }
body.public-site .lead { font-size: 16px; color: var(--muted); max-width: 65ch; }
body.public-site :is(.muted,.fineprint,.comparison-hint,.calendar-hint) { font-size: 13px; line-height: 1.75; color: var(--muted); }
body.public-site .text-link { font-size: 14px; font-weight: 600; letter-spacing: 0; }
body.public-site :is(.button,button) { min-height: 46px; padding: 11px 18px; border-radius: 8px; font-size: 14px; line-height: 1.5; font-weight: 650; gap: 12px; letter-spacing: 0; box-shadow: none; }
body.public-site .button.outline { background: #fff; color: var(--ink); border-color: #cbd1ca; }
body.public-site .button.outline:hover { background: #f2f4ef; border-color: #b3bcb2; }
body.public-site .button.white { background: #fff; color: var(--ink); border-color: #cbd1ca; }
body.public-site :is(.button,button):disabled { background: #e6e9e3; border-color: #d3d9d1; color: #657062; cursor: not-allowed; }
body.public-site .direction-icon { width: 18px; height: 18px; min-width: 18px; flex-basis: 18px; border: 0; border-radius: 0; background-color: currentColor; }
body.public-site :is(a,button,input,select,textarea):focus-visible { outline: 3px solid var(--pink); outline-offset: 3px; }
body.public-site ::selection { background: #ead4df; color: #34282e; }
body.public-site :is(input,textarea) { caret-color: var(--pink); }
body.public-site .site-header { position: sticky; top: 0; background: #fff; border-bottom: 1px solid var(--line); }
body.public-site .nav-row { min-height: 76px; gap: 24px; }
body.public-site .brand { gap: 9px; }
body.public-site .brand > img { width: 44px; height: 48px; }
body.public-site .brand > span { font-size: 27px; }
body.public-site .brand > span > span { font-size: 9px; letter-spacing: .025em; margin-top: 4px; }
body.public-site .site-header nav { font-size: 13px; gap: 20px; }
body.public-site .site-header nav > a { font-weight: 600; }
body.public-site .site-header nav .button { font-size: 13px; min-height: 42px; padding: 9px 14px; background: #fff; border-color: #cbd1ca; color: var(--ink); }
body.public-site .site-header nav .button:hover { background: #f2f4ef; }
body.public-site .site-header nav [aria-current=page] { color: var(--pink); text-decoration: underline; text-underline-offset: 7px; }
body.public-site #site-nav .sponsor-nav-link { display: inline-flex; }
body.public-site #site-nav .community-nav-link { display: none; }
/* Agenda comes first. No advertising panel above the event list. */
body.public-site .home-hero { display: flex; justify-content: space-between; align-items: end; gap: 32px; padding: 38px 0 22px; }
body.public-site .home-hero-copy { flex: 1; max-width: 720px; }
body.public-site .home-hero h1 { font-size: clamp(30px,3.3vw,40px); line-height: 1.3; letter-spacing: -.03em; max-width: none; margin-bottom: 10px; }
body.public-site .home-lead { font-size: 16px; max-width: 60ch; color: var(--muted); margin-bottom: 20px; line-height: 1.7; }
body.public-site .home-search { max-width: 660px; }
body.public-site .home-search > label { font-size: 14px; margin-bottom: 8px; font-weight: 600; }
body.public-site .home-search-box { padding: 5px; border: 1px solid #cbd1ca; border-radius: 9px; background: #fff; gap: 10px; }
body.public-site .home-search-box input { font-size: 16px; padding: 10px 0; }
body.public-site .home-search-box input::placeholder { color: #687169; }
body.public-site .home-search-box button { min-height: 42px; padding: 9px 18px; font-size: 14px; }
body.public-site .home-calendar-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--muted); font-size: 14px; white-space: nowrap; }
body.public-site .home-browse { padding: 12px 0 32px; margin: 0; }
body.public-site .home-browse h2 { margin: 0 0 20px; font-size: 23px; line-height: 1.4; }
body.public-site .home-category-picker { border: 1px solid var(--line); border-radius: 8px; background: transparent; margin-bottom: 12px; }
body.public-site .home-category-picker summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; padding: 12px 16px; font-size: 14px; font-weight: 500; cursor: pointer; list-style: none; }
body.public-site .home-category-picker summary::-webkit-details-marker { display: none; }
body.public-site .home-category-picker svg, body.public-site .home-shortcuts svg { flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; color: var(--muted); }
body.public-site .home-category-picker[open] summary > svg { transform: rotate(180deg); }
body.public-site .home-categories { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: visible; gap: 4px 16px; padding: 0 16px 12px; border: 0; margin: 0; }
body.public-site .home-categories a { display: flex; align-items: center; justify-content: flex-start; padding: 8px 0; min-height: 44px; font-size: 14px; font-weight: 500; line-height: 1.5; border: 0; border-radius: 0; background: transparent; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #bbc3b9; }
body.public-site .home-categories a:hover { background: transparent; color: var(--pink); }
body.public-site .home-wrap #agenda { padding: 26px 0 32px; }
body.public-site .home-wrap #agenda .section-head { display: flex; align-items: center; margin-bottom: 16px; }
body.public-site .home-wrap #agenda .section-head h2 { font-size: 24px; line-height: 1.35; margin: 0; }
body.public-site .home-wrap #agenda .section-head .text-link { font-size: 13px; min-height: 36px; margin: 0; }
body.public-site .filter-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
body.public-site .filter-tabs a { display: inline-flex; align-items: center; min-height: 38px; border: 1px solid var(--line); border-radius: 7px; padding: 7px 12px; font-size: 13px; font-weight: 500; background: #fff; }
body.public-site .filter-tabs .active { background: #eef0eb; border-color: #c6cec4; color: var(--ink); font-weight: 650; }
body.public-site .events-grid { gap: 26px; }
body.public-site .event-tile { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px; }
body.public-site .event-art { aspect-ratio: 4/3; border-radius: 6px; background: #f2f3ef; margin-bottom: 14px; }
body.public-site .event-art img { width: 100%; height: 100%; object-fit: contain; }
body.public-site .event-illustration { height: 100%; margin: 0; }
body.public-site .event-illustration img { object-fit: cover; }
body.public-site .event-tile h3 { font-size: 18px; line-height: 1.5; letter-spacing: -.015em; margin-bottom: 10px; }
body.public-site .event-tile > p { font-size: 14px; color: var(--muted); line-height: 1.6; margin-bottom: 12px; }
body.public-site .event-meta { font-size: 12px; line-height: 1.6; gap: 8px; margin-bottom: 10px; color: var(--muted); }
body.public-site .tile-bottom { font-size: 13px; padding-top: 12px; gap: 12px; }
body.public-site .tile-bottom > a { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; color: var(--pink); }
body.public-site .tile-status { font-size: 12px; line-height: 1.6; background: #f0f3ec; color: #40513d; }
body.public-site .sponsor-label { font-size: 11px; }
body.public-site .agenda-rail-toolbar { font-size: 12px; margin-bottom: 14px; color: var(--muted); }
body.public-site .agenda-scroll-button { padding: 8px; min-height: 36px; width: 36px; background: #fff; color: var(--ink); border: 1px solid var(--line); }
body.public-site #agenda .agenda-rail { display: flex; gap: 26px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-color: #a2ada0 #edf0e9; padding: 3px 0 18px; }
body.public-site #agenda .agenda-rail > .event-tile { flex: 0 0 calc((100% - 52px)/3); min-width: 0; scroll-snap-align: start; }
body.public-site .price-card .package-wa > .direction-icon { background: transparent; }
body.public-site .home-shortcuts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 36px; border: 0; padding: 0; margin: 0; overflow: visible; scroll-snap-type: none; }
body.public-site .home-shortcuts > a:nth-child(n) { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; padding: 16px 0; min-width: 0; min-height: 76px; grid-column: auto; }
body.public-site .home-shortcuts > a:hover { background: transparent; color: var(--pink); }
body.public-site .home-shortcut-copy { min-width: 0; }
body.public-site .home-shortcut-title { display: block; font-size: 15px; font-weight: 600; line-height: 1.5; }
body.public-site .home-shortcuts > a:nth-child(n) small { display: block; font-size: 13px; color: var(--muted); line-height: 1.6; margin: 4px 0 0; max-width: none; text-align: left; }
/* Secondary offers use neutral surfaces and a small accent. */
body.public-site .community-section { display: grid; grid-template-columns: 1.2fr 1fr; gap: 36px; background: #f0f3ed; color: var(--ink); border: 1px solid #dce3d8; border-radius: 12px; padding: 28px; margin: 28px 0; }
body.public-site .community-label { font-size: 13px; color: #455c43; font-weight: 600; letter-spacing: 0; }
body.public-site .community-copy h2 { color: var(--ink); font-size: 25px; line-height: 1.4; margin: 12px 0; max-width: 26ch; }
body.public-site .community-copy > p { font-size: 15px; line-height: 1.75; color: #52604f; margin-bottom: 12px; }
body.public-site .community-copy ul { display: block; font-size: 14px; line-height: 1.75; color: #52604f; margin: 0; padding-left: 0; }
body.public-site .community-copy li { margin: 9px 0; padding-left: 24px; }
body.public-site .community-copy li::before { color: #526f4a; font-weight: 700; }
body.public-site .community-offer { border-left: 1px solid #cfd9c9; padding-left: 28px; }
body.public-site .community-lifetime { font-size: 12px; color: #455c43; letter-spacing: .02em; }
body.public-site .community-price-note { font-size: 15px; color: var(--ink); line-height: 1.7; }
body.public-site .community-note { font-size: 13px; color: #52604f; line-height: 1.75; margin: 14px 0 0; }
body.public-site .community-offer .button { width: auto; color: var(--ink); border-color: #b8c6b3; }
body.public-site .area-discovery { background: transparent; border-radius: 0; padding: 28px 0; margin: 0 0 24px; gap: 32px; border-bottom: 1px solid var(--line); }
body.public-site .home-wrap .area-discovery h2 { font-size: 25px; margin: 0 0 14px; line-height: 1.4; }
body.public-site .area-discovery-intro > p { font-size: 15px !important; line-height: 1.75; }
body.public-site .area-destinations { gap: 10px; }
body.public-site .area-destination { min-height: 0; padding: 14px; border-radius: 8px; background: #fff; border: 1px solid var(--line); }
body.public-site .area-destination-top { margin-bottom: 8px; }
body.public-site .area-destination-top svg { width: 22px; height: 22px; color: #63705e; }
body.public-site .area-destination-index, body.public-site .area-discovery-note { display: none; }
body.public-site .area-destination > strong { font-size: 14px; }
body.public-site .area-destination-description { font-size: 12px; line-height: 1.6; margin: 6px 0 10px; }
body.public-site .area-destination-bottom { font-size: 12px; }
body.public-site .promo-band { grid-template-columns: 1fr auto; background: #f0f1ed; color: var(--ink); border: 1px solid var(--line); padding: 26px 28px; border-radius: 12px; gap: 20px; }
body.public-site .promo-band h2 { font-size: 25px; margin-bottom: 10px; }
body.public-site .promo-band p { font-size: 15px; color: var(--muted); max-width: 65ch; }
body.public-site .promo-word { display: none; }
body.public-site .pricing { gap: 16px; }
body.public-site .price-card { padding: 22px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
body.public-site .price-card.recommended { background: #fff; border-color: #bc8aa0; }
body.public-site .package-index { display: none; }
body.public-site .price-card h3 { font-size: 22px; margin: 0 0 12px; }
body.public-site .package-price { font-size: 24px; color: var(--ink); font-weight: 700; min-height: 0; margin-bottom: 6px; }
body.public-site .price-card > .muted { font-size: 13px; line-height: 1.7; }
body.public-site .price-card ul { font-size: 14px; line-height: 1.75; padding-left: 18px; margin: 18px 0 22px; }
body.public-site .price-card .button { font-size: 13px; gap: 8px; padding: 11px; }
body.public-site .price-card .package-wa { font-size: 13px; min-height: 44px; gap: 8px; }
body.public-site .package-comparison th, body.public-site .package-comparison td { font-size: 14px; padding: 18px; line-height: 1.75; }
body.public-site .comparison-benefits li { font-size: 14px; }
body.public-site .steps-section, body.public-site .requirements { gap: 32px; }
body.public-site .steps-list h3 { font-size: 19px; }
body.public-site .steps-list p, body.public-site .requirements li { font-size: 15px; line-height: 1.75; }
body.public-site .requirements { padding: 26px; background: #f2f3ef; border-radius: 10px; }
body.public-site .faq-section { gap: 32px; }
body.public-site .faq-list summary { font-size: 15px; font-weight: 600; line-height: 1.7; }
body.public-site .faq-list details { padding: 18px 0; }
body.public-site .faq-list p { font-size: 15px; }
/* Sponsorship starts with the offer, not a decorative opening. */
body.public-site .sponsor-page { padding-top: 0; }
body.public-site .sponsor-hero { display: flex; justify-content: space-between; align-items: end; gap: 30px; padding: 26px 0 24px; border-bottom: 0; }
body.public-site .sponsor-hero h1 { font-size: clamp(30px,3vw,38px); line-height: 1.35; margin: 0 0 12px; max-width: 28ch; }
body.public-site .sponsor-hero .lead { max-width: 66ch; font-size: 16px; margin: 0; }
body.public-site .sponsor-hero > .text-link { white-space: nowrap; padding: 8px 0; }
body.public-site #paket-sponsor { padding: 12px 0 36px; }
body.public-site #paket-sponsor > h2 { font-size: 20px; margin-bottom: 6px; }
body.public-site .sponsor-intro { font-size: 14px; color: var(--muted); max-width: 80ch; }
body.public-site .sponsor-packages { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 20px; }
body.public-site .sponsor-package { padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
body.public-site .sponsor-package.sponsor-featured { border-color: #bc8aa0; background: #fff; }
body.public-site .sponsor-package-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
body.public-site .sponsor-package-title h3 { font-size: 21px; margin: 0; }
body.public-site .sponsor-duration { display: inline-flex; align-items: center; background: #f0f2ec; color: #53604e; padding: 4px 10px; border-radius: 5px; font-size: 12px; font-weight: 600; }
body.public-site .sponsor-package .sponsor-audience { font-size: 14px; line-height: 1.7; min-height: 0; margin-bottom: 16px; color: var(--muted); }
body.public-site .sponsor-package .sponsor-price { font-size: 28px; line-height: 1.35; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
body.public-site .sponsor-package > .muted { font-size: 13px; margin: 0; }
body.public-site .sponsor-package .sponsor-quota { font-size: 12px; font-weight: 600; color: var(--muted); margin: 20px 0 8px; }
body.public-site .sponsor-package ul { font-size: 14px; line-height: 1.8; margin: 0 0 22px; padding-left: 19px; }
body.public-site .sponsor-package li { margin-bottom: 6px; padding-left: 2px; }
body.public-site .sponsor-package li::marker { color: #7a8577; }
body.public-site .sponsor-package .button { font-size: 14px; }
body.public-site .sponsor-terms { padding-top: 32px; gap: 36px; }
body.public-site .sponsor-terms h2 { font-size: 23px; }
body.public-site .sponsor-terms h3 { font-size: 17px; }
body.public-site .sponsor-terms p { font-size: 15px; }
body.public-site .sponsor-empty { padding: 20px 0; margin-top: 16px; border-bottom: 0; }
body.public-site .sponsor-empty h3 { font-size: 19px; }
body.public-site .sponsor-empty p { font-size: 15px; }
body.public-site .sponsor-logo { background: #fff; }
/* Editorial pages use the same reading scale as the rest of the site. */
body.public-site .journal-page { max-width: 1000px; }
body.public-site .journal-heading { display: block; padding: 26px 0 22px; }
body.public-site .journal-heading h1 { font-size: 32px; line-height: 1.4; margin-bottom: 10px; }
body.public-site .journal-heading p { font-size: 16px; max-width: 65ch; }
body.public-site .journal-search { border-top: 0; padding: 0 0 24px; }
body.public-site .journal-search input { background: #fff; border-color: #cbd1ca; border-radius: 8px; padding: 12px 14px; font-size: 16px; }
body.public-site .journal-feature { background: #f1f2ed; border: 1px solid var(--line); border-radius: 10px; padding: 26px; }
body.public-site .journal-feature-label { font-size: 12px; color: var(--muted); margin-bottom: 14px; }
body.public-site .journal-feature h2 { font-size: 25px; line-height: 1.45; letter-spacing: -.02em; }
body.public-site .journal-feature-copy p { font-size: 15px; color: var(--muted); }
body.public-site .journal-feature-footer { font-size: 12px; color: var(--muted); margin-top: 20px; }
body.public-site .journal-section-head { margin: 30px 0 16px; }
body.public-site .journal-section-head h2 { font-size: 23px; }
body.public-site .journal-entry h2 { font-size: 21px; line-height: 1.5; }
body.public-site .journal-entry p { font-size: 16px; }
body.public-site .journal-entry-meta { font-size: 12px; }
body.public-site .journal-entry-bottom { font-size: 12px; }
body.public-site .journal-entry-bottom a { font-size: 14px; }
body.public-site .journal-next h2 { font-size: 23px; }
body.public-site .journal-next p { font-size: 15px; }
body.public-site .article-grid { gap: 24px; }
body.public-site .article-tile { border-top: 1px solid var(--line); padding: 20px 0 10px; background: transparent; }
body.public-site .article-tile h3 { font-size: 21px; line-height: 1.5; margin-bottom: 10px; }
body.public-site .article-tile > p { font-size: 15px; color: var(--muted); line-height: 1.75; }
body.public-site .article-preview-meta { display: flex; gap: 14px; font-size: 12px; color: var(--muted); margin-bottom: 12px; }
body.public-site .article-preview-meta > span:first-child { color: var(--pink); }
body.public-site .article-tile > .text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }
body.public-site .article-page { max-width: 820px; }
body.public-site .article-page .detail-header h1 { font-size: 34px; max-width: 30ch; }
body.public-site .article-excerpt { font-size: 17px; }
body.public-site .article-body { max-width: 70ch; }
body.public-site .prose, body.public-site .article-body p { font-size: 16px; line-height: 1.85; }
body.public-site .article-body h2 { font-size: 23px; margin: 32px 0 12px; }
body.public-site .article-cta { background: #f0f1ed; padding: 24px; gap: 20px; border-radius: 10px; }
body.public-site .article-cta h2 { font-size: 22px; margin: 0; }
/* Forms, filters, and detail pages remain functional and become readable. */
body.public-site .directory-filters, body.public-site .form-panel, body.public-site .side-note { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 24px; }
body.public-site .field { min-width: 0; }
body.public-site .field label, body.public-site .filter-grid label { font-size: 14px; font-weight: 600; margin-bottom: 7px; }
body.public-site .field :is(input,select,textarea) { font-size: 16px; border: 1px solid #cbd1ca; border-radius: 7px; background: #fff; padding: 11px 13px; color: var(--ink); min-width: 0; }
body.public-site .field small { font-size: 13px; color: var(--muted); line-height: 1.7; }
body.public-site .checkbox { font-size: 15px; line-height: 1.8; align-items: start; gap: 12px; }
body.public-site .checkbox input { margin-top: 4px; }
body.public-site .choice-control > .choice-trigger { background: #fff; border-color: #cbd1ca; color: var(--ink); min-height: 48px; padding: 11px 13px; font-size: 16px; border-radius: 7px; }
body.public-site .choice-option { font-size: 15px; color: var(--ink); }
body.public-site .choice-option[aria-selected=true] { color: var(--pink-dark); background: var(--pale); }
body.public-site .choice-option.is-active { background: var(--pale); outline-color: #c6a7b5; }
body.public-site .curated-links { font-size: 13px; gap: 12px; }
body.public-site .results-heading { gap: 16px; }
body.public-site .results-heading p { font-size: 14px; }
body.public-site .empty-state { background: #f3f4ef; border: 1px dashed #ccd4c6; padding: 24px; gap: 20px; }
body.public-site .empty-state h3 { font-size: 20px; }
body.public-site .empty-state p { font-size: 15px; }
body.public-site .empty-mark { width: 48px; height: 48px; background: #e7ece2; color: #62725a; }
body.public-site .detail-meta, body.public-site .info-grid dd { font-size: 15px; line-height: 1.7; }
body.public-site .info-grid dt { font-size: 12px; }
body.public-site .detail-header h1 { font-size: clamp(28px,3vw,38px); line-height: 1.4; }
body.public-site .feature-wrap { padding-top: 0; }
body.public-site .feature-wrap > h1 { padding-top: 28px; }
body.public-site .feature-grid { gap: 22px; }
body.public-site .feature-item h2 { font-size: 20px; }
body.public-site .feature-item p { font-size: 15px; }
body.public-site .month-agenda-heading h2 { font-size: 25px; }
body.public-site .month-agenda-info h3 { font-size: 17px; line-height: 1.6; }
body.public-site .month-agenda-info p { font-size: 14px; }
body.public-site .month-agenda-tags, body.public-site .month-event-duration { font-size: 12px; }
body.public-site .month-date strong { font-family: var(--font); font-size: 25px; font-weight: 700; }
body.public-site .notice { background: #f1f3ed; color: #43513d; border-color: #ccd6c6; font-size: 14px; line-height: 1.8; }
body.public-site .notice.error { background: #fbefed; color: #953a30; border-color: #dfb5af; }
/* Compact neutral footer: useful destinations, no oversized slogan. */
body.public-site .site-footer.footer-pro { background: #f0f1ec; color: var(--ink); border-top: 1px solid var(--line); margin-top: 44px; padding: 30px 0 20px; }
body.public-site .footer-shell { width: min(1160px,calc(100% - 64px)); }
body.public-site .footer-intro { display: flex; justify-content: space-between; align-items: start; gap: 28px; padding: 0 0 24px; border-bottom: 1px solid #dce1d8; }
body.public-site .footer-wordmark { color: var(--ink); font-size: 26px; line-height: 1.1; }
body.public-site .footer-wordmark span { font-size: 9px; }
body.public-site .footer-description { color: var(--muted); font-size: 13px; line-height: 1.7; max-width: 35ch; margin: 12px 0 0; }
body.public-site .footer-social > p { color: var(--muted); font-size: 12px; margin: 0 0 10px; }
body.public-site .site-footer .social-links { gap: 8px; margin-top: 0; }
body.public-site .site-footer .social-links .social-icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 8px; padding: 9px; color: #596454; background: #fff; border-color: #d7ded1; }
body.public-site .social-icon svg { width: 20px; height: 20px; }
body.public-site .site-footer .social-pending { color: var(--muted); font-size: 12px; }
body.public-site .footer-directory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; padding: 24px 0 16px; }
body.public-site .footer-group h2 { font-family: var(--font); font-size: 14px; font-weight: 650; color: var(--ink); line-height: 1.5; letter-spacing: 0; margin: 0 0 10px; }
body.public-site .footer-group ul { margin: 0; padding: 0; list-style: none; }
body.public-site .footer-group li { margin: 0; }
body.public-site .footer-group a { display: inline-flex; align-items: center; font-size: 13px; line-height: 1.7; padding: 5px 0; min-height: 32px; color: var(--muted); }
body.public-site .footer-group a:hover { color: var(--pink); }
body.public-site .footer-legal { padding-top: 16px; margin-top: 0; border-top: 1px solid #dce1d8; color: var(--muted); font-size: 12px; }
@media (max-width:1100px) and (min-width:801px) {
  body.public-site .nav-row { gap: 16px; }
  body.public-site .site-header nav { gap: 13px; font-size: 12px; }
  body.public-site #site-nav .sponsor-nav-link { display: none; }
  body.public-site .brand > span { font-size: 24px; }
  body.public-site .brand > img { width: 37px; }
  body.public-site .pricing { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
  body.public-site .wrap, body.public-site .footer-shell { width: calc(100% - 36px); }
  body.public-site .nav-row { min-height: 68px; flex-wrap: wrap; gap: 0; justify-content: space-between; }
  body.public-site .brand > img { width: 36px; height: 42px; }
  body.public-site .brand > span { font-size: 24px; }
  body.public-site .brand > span > span { font-size: 8px; }
  body.public-site .menu-toggle { display: inline-flex; padding: 8px 12px; min-height: 40px; font-size: 13px; background: #fff; color: var(--ink); border: 1px solid var(--line); gap: 10px; }
  body.public-site #site-nav { display: none; width: 100%; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 0; border-top: 0; }
  body.public-site #site-nav.open { display: flex; padding: 12px 0 24px; border-top: 1px solid var(--line); max-height: calc(100dvh - 68px); overflow-y: auto; overscroll-behavior: contain; }
  body.public-site #site-nav > a { display: flex; align-items: center; min-height: 48px; padding: 11px 8px; border-bottom: 1px solid var(--line); font-size: 15px; }
  body.public-site #site-nav :is(.sponsor-nav-link,.community-nav-link) { display: flex; }
  body.public-site #site-nav .button { margin-top: 12px; justify-content: center; background: var(--pink); color: #fff; border-color: var(--pink); }
  html.menu-is-open { overflow: hidden; overscroll-behavior: none; }
  html.menu-is-open body.public-site .site-header { position: fixed; inset: 0 0 auto; height: 100dvh; overflow: hidden; background: #fff; }
  html.menu-is-open body.public-site .nav-row { align-content: flex-start; }
  body.public-site .home-hero { display: block; padding: 24px 0 16px; }
  body.public-site .home-hero h1 { font-size: 30px; line-height: 1.35; max-width: 23ch; }
  body.public-site .home-lead { font-size: 15px; line-height: 1.75; margin-bottom: 16px; }
  body.public-site .home-calendar-link { margin-top: 10px; font-size: 13px; min-height: 36px; }
  body.public-site .home-search-box { gap: 8px; }
  body.public-site .home-search-box > svg { width: 18px; margin-left: 5px; }
  body.public-site .home-search-box input { font-size: 16px; }
  body.public-site .home-search-box button { padding: 10px 14px; }
  body.public-site .home-search-box button .direction-icon { display: none; }
  body.public-site .home-browse { padding: 8px 0 32px; }
  body.public-site .home-browse h2 { font-size: 21px; margin-bottom: 16px; }
  body.public-site .home-categories { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.public-site .home-shortcuts { grid-template-columns: 1fr; gap: 0; }
  body.public-site #agenda .agenda-rail { gap: 18px; scrollbar-width: none; padding-bottom: 0; }
  body.public-site #agenda .agenda-rail::-webkit-scrollbar { display: none; }
  body.public-site #agenda .agenda-rail > .event-tile { flex-basis: 100%; }
  body.public-site .events-grid:not(.agenda-rail) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  body.public-site .event-meta { flex-wrap: wrap; }
  body.public-site .event-tile h3 { font-size: 18px; }
  body.public-site .community-section { grid-template-columns: 1fr; padding: 22px; gap: 20px; margin: 24px 0; }
  body.public-site .community-copy h2 { font-size: 23px; margin-top: 12px; }
  body.public-site .community-offer { padding: 20px 0 0; border-left: 0; border-top: 1px solid #cfd9c9; }
  body.public-site .area-discovery { display: block; padding: 24px 0; }
  body.public-site .area-destinations { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 20px; }
  body.public-site .area-destination { padding: 14px; }
  body.public-site .promo-band { display: block; padding: 22px; }
  body.public-site .promo-band h2 { font-size: 23px; }
  body.public-site .promo-band .button { font-size: 14px; }
  body.public-site .pricing { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.public-site .sponsor-hero { display: block; padding: 24px 0 18px; }
  body.public-site .sponsor-hero h1 { font-size: 30px; }
  body.public-site .sponsor-hero > .text-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 12px; min-height: 36px; }
  body.public-site .sponsor-hero .lead { font-size: 16px; line-height: 1.75; }
  body.public-site .sponsor-packages { grid-template-columns: 1fr; gap: 16px; margin-top: 16px; }
  body.public-site .sponsor-package { padding: 22px; }
  body.public-site .sponsor-terms { grid-template-columns: 1fr; gap: 14px; }
  body.public-site .journal-heading h1 { font-size: 30px; }
  body.public-site .journal-feature { padding: 22px; }
  body.public-site .journal-feature-copy { display: block; }
  body.public-site .journal-feature h2 { font-size: 23px; margin-bottom: 12px; max-width: none; }
  body.public-site .journal-list { grid-template-columns: 1fr; gap: 0; }
  body.public-site .journal-search > div { display: flex; gap: 8px; }
  body.public-site .journal-search input { width: 100%; min-width: 0; flex: 1; }
  body.public-site .journal-search button { padding: 11px 13px; font-size: 13px; }
  body.public-site .journal-search button .direction-icon { display: none; }
  body.public-site .journal-entry h2 { font-size: 21px; }
  body.public-site .article-grid { grid-template-columns: 1fr; gap: 0; }
  body.public-site .article-grid > article:last-child:nth-child(3) { grid-column: auto; max-width: none; }
  body.public-site .article-page .detail-header h1 { font-size: 28px; line-height: 1.5; }
  body.public-site .article-body p { font-size: 16px; line-height: 1.85; }
  body.public-site .article-body h2 { font-size: 22px; }
  body.public-site .article-cta { align-items: start; flex-direction: column; }
  body.public-site .detail-header h1, body.public-site .page-heading h1, body.public-site .feature-wrap > h1 { font-size: 30px; line-height: 1.4; }
  body.public-site .directory-filters, body.public-site .form-panel, body.public-site .side-note { padding: 20px; }
  body.public-site .filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  body.public-site .filter-bottom .field { width: auto; min-width: 0; flex: 1; }
  body.public-site .filter-bottom a { font-size: 13px; }
  body.public-site .search-line { grid-template-columns: 1fr auto; gap: 10px; align-items: end; }
  body.public-site .search-line .field { margin-bottom: 0; }
  body.public-site .search-line button { min-height: 48px; font-size: 13px; padding: 11px 13px; }
  body.public-site .search-line button .direction-icon { display: none; }
  body.public-site .results-heading { align-items: start; }
  body.public-site .results-heading .text-link { font-size: 13px; }
  body.public-site .feature-grid { grid-template-columns: 1fr; gap: 0; }
  body.public-site .feature-item { padding: 20px 0; border-bottom: 1px solid var(--line); }
  body.public-site .steps-section, body.public-site .requirements, body.public-site .faq-section { grid-template-columns: 1fr; gap: 20px; }
  body.public-site .month-agenda-info h3 { font-size: 16px; }
  body.public-site .month-agenda-info p { font-size: 13px; }
  body.public-site .month-agenda-link { grid-template-columns: 55px minmax(0,1fr); gap: 13px; padding: 16px 12px; }
  body.public-site .month-event-duration { font-size: 12px; }
  body.public-site .footer-intro { flex-direction: column; gap: 22px; }
  body.public-site .footer-social { width: 100%; }
  body.public-site .footer-directory { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; }
  body.public-site .footer-group a { font-size: 13px; min-height: 36px; }
  body.public-site .footer-group h2 { font-size: 14px; }
}
@media (max-width:480px) {
  body.public-site .pricing, body.public-site .events-grid:not(.agenda-rail) { grid-template-columns: 1fr; }
  body.public-site .section { padding: 30px 0; }
  body.public-site .section-head { align-items: start; }
  body.public-site .section-head h2 { font-size: 23px; }
  body.public-site .section-head .text-link { white-space: normal; }
  body.public-site .home-wrap #agenda .section-head h2 { font-size: 22px; }
  body.public-site .home-wrap #agenda .section-head .text-link { white-space: nowrap; }
  body.public-site .filter-grid { grid-template-columns: 1fr; gap: 4px; }
  body.public-site .empty-state { display: block; }
  body.public-site .empty-mark { margin-bottom: 16px; }
  body.public-site .home-search-box input::placeholder { font-size: 14px; }
  body.public-site .article-cta { padding: 20px; }
  body.public-site .journal-section-head h2 { font-size: 22px; }
  body.public-site .journal-entry-bottom { flex-wrap: wrap; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  body.public-site *, body.public-site *::before, body.public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Keep the most-used filters visible; native disclosure retains every field. */
body.public-site .filter-grid.filter-basic { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 18px; gap: 16px; }
body.public-site .advanced-filters { border-top: 1px solid var(--line); margin: 8px 0 16px; }
body.public-site .advanced-filters > summary { cursor: pointer; padding: 12px 0; min-height: 46px; font-size: 14px; font-weight: 600; color: var(--pink); }
body.public-site .advanced-filters > .filter-grid { padding: 8px 0; }
body.public-site .advanced-filters > summary:focus-visible { outline: 3px solid var(--pink); outline-offset: 3px; }

body.public-site .agenda-rail-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 12px 0 14px; }
body.public-site .agenda-rail-controls { display: flex; gap: 8px; }
body.public-site .agenda-rail-controls[hidden] { display: none; }
body.public-site .agenda-scroll-button { min-width: 44px; width: 44px; min-height: 44px; height: 44px; padding: 10px; }
body.public-site .agenda-scroll-button .direction-icon { margin: 0; }
body.public-site .agenda-scroll-button:disabled { opacity: .45; }

/* Promotion packages: a quiet comparison row with native horizontal scrolling. */
body.public-site .promotion-packages { min-width: 0; margin-bottom: 28px; }
body.public-site .package-swipe-hint { display: none; }
body.public-site .promotion-rail { align-items: start; }
body.public-site .promotion-rail .price-card { min-width: 0; border-radius: 14px; padding: 24px; }
body.public-site .promotion-rail .price-card h3 { font-size: 23px; margin: 0 0 18px; }
body.public-site .promotion-rail .package-price { font-size: 28px; line-height: 1.3; max-width: none; letter-spacing: -.025em; }
body.public-site .promotion-rail .price-card > .muted { margin-bottom: 0; font-size: 13px; }
body.public-site .promotion-rail .price-card ul { list-style: none; padding: 0; margin: 20px 0; font-size: 14px; line-height: 1.7; flex: none; }
body.public-site .promotion-rail .price-card li { padding: 7px 0; }
body.public-site .promotion-rail .price-card li::before { content: none; }
body.public-site .promotion-rail .price-card .button { width: 100%; min-height: 46px; font-size: 14px; }
body.public-site .package-details { border-top: 1px solid var(--line); margin-top: 18px; }
body.public-site .package-details summary { cursor: pointer; padding: 14px 0; min-height: 46px; font-size: 13px; font-weight: 600; line-height: 1.6; }
body.public-site .promotion-rail .package-details ul { margin: 0 0 12px; color: var(--muted); }
body.public-site .promotion-rail .price-card .package-wa { justify-content: flex-start; margin-top: 4px; font-size: 13px; }
body.public-site .sponsor-rail:focus-visible,
body.public-site .promotion-rail:focus-visible { outline: 2px solid var(--pink); outline-offset: 4px; }
@media (max-width: 900px) {
 body.public-site .package-swipe-hint { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); margin: 0 0 14px; }
 body.public-site .sponsor-packages.sponsor-rail,
 body.public-site .pricing.promotion-rail { display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding-inline: 2px; padding: 2px 2px 18px; scrollbar-width: thin; scrollbar-color: #9ca79d #e8ece6; }
 body.public-site .sponsor-rail .sponsor-package,
 body.public-site .promotion-rail .price-card { flex: 0 0 calc(100% - 32px); scroll-snap-align: start; }
 body.public-site .sponsor-packages.sponsor-rail { margin-top: 0; align-items: start; }
 body.public-site .sponsor-rail::-webkit-scrollbar,
 body.public-site .promotion-rail::-webkit-scrollbar { height: 5px; }
 body.public-site .sponsor-rail::-webkit-scrollbar-track,
 body.public-site .promotion-rail::-webkit-scrollbar-track { background: #e8ece6; border-radius: 4px; }
 body.public-site .sponsor-rail::-webkit-scrollbar-thumb,
 body.public-site .promotion-rail::-webkit-scrollbar-thumb { background: #9ca79d; border-radius: 4px; }
}
@media (min-width: 601px) and (max-width: 900px) {
 body.public-site .sponsor-rail .sponsor-package,
 body.public-site .promotion-rail .price-card { flex-basis: 46%; }
}
@media print {
 body.public-site .sponsor-packages.sponsor-rail,
 body.public-site .pricing.promotion-rail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
 body.public-site .package-swipe-hint { display: none; }
}

/* Community invitation: fresh green reading area and a distinct joining action. */
body.public-site .community-section { grid-template-columns: 1.2fr 1fr; gap: 0; padding: 0; background: #eff8f1; border: 1px solid #cfe2d4; border-radius: 18px; }
body.public-site .community-copy { padding: 32px; }
body.public-site .community-label { background: #dcefe2; color: #17563d; padding: 8px 12px; border-radius: 8px; font-size: 12px; gap: 8px; }
body.public-site .community-label svg { width: 22px; height: 22px; }
body.public-site .community-copy h2 { color: #164c37; font-size: 28px; line-height: 1.35; margin: 20px 0 14px; max-width: 23ch; }
body.public-site .community-copy > p { color: #385746; font-size: 15px; line-height: 1.8; margin-bottom: 20px; }
body.public-site .community-copy ul { color: #2f5140; font-size: 14px; line-height: 1.75; }
body.public-site .community-copy li { padding-left: 25px; margin: 12px 0; }
body.public-site .community-copy li::before { color: #22724e; }
body.public-site .community-offer { align-self: stretch; display: flex; flex-direction: column; justify-content: center; border: 0; background: #17563d; padding: 32px; border-radius: 0 17px 17px 0; }
body.public-site .community-lifetime { color: #fff; font-size: 22px; font-weight: 700; line-height: 1.4; letter-spacing: -.02em; }
body.public-site .community-price-note { color: #e0f0e5; font-size: 15px; line-height: 1.75; margin: 10px 0 22px; }
body.public-site .community-offer .button.white { background: #dcf58a; border-color: #dcf58a; color: #173c2b; width: 100%; min-height: 50px; font-size: 14px; gap: 12px; }
body.public-site .community-offer .button.white:hover { background: #e8ffa6; border-color: #e8ffa6; }
body.public-site .community-offer :is(a,summary):focus-visible { outline: 3px solid #dcf58a; outline-offset: 4px; }
body.public-site .community-details { border-top: 1px solid #477c62; margin-top: 22px; }
body.public-site .community-details summary { color: #e0f0e5; font-size: 13px; line-height: 1.6; font-weight: 600; cursor: pointer; padding: 14px 0; min-height: 46px; }
body.public-site .community-offer .community-note { color: #e0f0e5; font-size: 13px; line-height: 1.8; margin: 0 0 8px; }
@media (max-width: 800px) {
 body.public-site .community-section { grid-template-columns: 1fr; gap: 0; padding: 0; }
 body.public-site .community-copy { padding: 24px; }
 body.public-site .community-copy h2 { font-size: 26px; }
 body.public-site .community-offer { padding: 24px; border: 0; border-radius: 0 0 17px 17px; }
}
