/* Public KiddioPass design contract. Admin styles are intentionally out of scope.
   Roles, not individual URLs, determine type size. Keep this after page styles. */
body.kp-public{
 --ink:#331c7a;--pink:#f4467e;--paper:#fffcf7;--lavender:#f0eafb;
 --link:#6b54d3;--teal:#31c4c0;--muted:#625878;--line:#ded8e4;
 --kp-heading-font:Gabarito,system-ui,sans-serif;--kp-body-font:Onest,system-ui,sans-serif;
 --kp-page-title:clamp(46px,5.6vw,80px);--kp-detail-title:clamp(34px,3.7vw,52px);
 --kp-section-title:clamp(34px,4vw,52px);--kp-content-title:30px;--kp-card-title:24px;
 --kp-body:16px;--kp-lead:20px;--kp-small:14px;--kp-button:20px;
 --kp-page-width:1480px;--kp-gutter:48px;--kp-control-height:52px;
 font-family:var(--kp-body-font);font-size:var(--kp-body);line-height:1.65;
 color:var(--ink);background:var(--paper)
}
body.kp-public :is(h1,h2,h3,h4){font-family:var(--kp-heading-font);font-weight:700;letter-spacing:-.025em;color:var(--ink)}
body.kp-public main h1{font-size:var(--kp-page-title);font-weight:800;line-height:1.08;letter-spacing:-.025em}
body.kp-public main h1 em{color:var(--link);font-style:normal}
body.kp-public main :is(.venue-title,.activity-profile-heading) h1,
body.kp-public :is(.activity-v2,.venue-page,.onboard-profile,.onboard-flow,.family-hub) h1{font-size:var(--kp-detail-title)}
body.kp-public :is(.homepage .hero,.contact-hero) h1{font-size:var(--kp-page-title);line-height:1.08}
body.kp-public :is(.section-heading,.hub-section-heading,.partners-section-heading,.account-benefits,.newsletter-copy) h2{font-size:var(--kp-section-title);font-weight:700;line-height:1.15}
body.kp-public :is(.profile-section,.prose-page,.blocks-page,.prices-page,.family-hub) h2,
body.kp-public :is(.activity-related,.related-section)>h2,
body.kp-public :is(.kp-event-day,.kp-ongoing-section)>h2,
body.kp-public .onboard-summary h2{font-size:var(--kp-content-title);font-weight:700;line-height:1.2}
body.kp-public .prices-page :is(.prices-extras,.prices-ask) h2{font-size:var(--kp-section-title);line-height:1.15}
body.kp-public .family-hub .hub-section-heading h2{font-size:var(--kp-section-title)}
body.kp-public :is(.card-title h3,.activity-card h2,.activity-related .activity-card h2,.kp-event-card h3,.kp-ongoing h3,.article-card h2,.article-card h3,.city-tile h2){font:700 var(--kp-card-title)/1.2 var(--kp-heading-font);letter-spacing:-.02em}
body.kp-public :is(.discovery-heading,.activity-list-heading,.articles-heading,.page-intro,.prices-hero,.city-intro,.partners-hero-copy)>p{font:400 var(--kp-lead)/1.6 var(--kp-body-font);color:var(--muted)}
body.kp-public :is(.profile-section,.prose-page,.blocks-page,.public-form,.partners-benefits,.partners-steps) p,
body.kp-public :is(.card-description,.activity-card p,.kp-ongoing-copy p){font-size:var(--kp-body);line-height:1.65}
body.kp-public :is(.breadcrumb,.breadcrumbs,.activity-source,.freshness,.card-subtitle,.activity-area,.kp-event-place,.kp-event-series,.article-meta,.card-meta,.activity-organizer small){font-size:var(--kp-small);line-height:1.5}
body.kp-public :is(.chip,.activity-tags span,.activity-profile-tags span,.kp-event-tags .chip,.kp-ongoing-copy>.chip){font:600 var(--kp-small)/1.35 var(--kp-body-font);color:var(--ink)}
body.kp-public :is(a.chip,button.chip,summary.chip,.activity-category-nav a,.kp-filter-chips a){font:600 var(--kp-small)/1.35 var(--kp-body-font);min-height:44px;display:inline-flex;align-items:center;justify-content:center}
body.kp-public :is(.kp-filter-chips a[aria-current],.activity-category-nav a[aria-current],.chip.active){background:var(--ink);border-color:var(--ink);color:#fff}

/* One button family; compact utility controls are explicitly identified below. */
body.kp-public :is(main,.site-header,.site-footer,.cookie-banner,dialog) .button,
body.kp-public :is(.onboard-google,.header-account-toggle){
 font:700 var(--kp-button)/1.3 var(--kp-heading-font);letter-spacing:0;
 min-height:var(--kp-control-height);height:auto;padding:12px 22px;border-radius:999px;
 display:inline-flex;align-items:center;justify-content:center;gap:10px;text-align:center;
 text-decoration:none;box-shadow:none;white-space:normal
}
body.kp-public :is(main,.site-header,.site-footer,.cookie-banner,dialog) .button:not(.secondary):not(.pink){background:var(--ink);border-color:var(--ink);color:#fff}
body.kp-public :is(main,.site-header,.site-footer,.cookie-banner,dialog) .button.pink{background:var(--pink);border:1px solid var(--pink);color:#fff}
body.kp-public :is(main,.site-header,.site-footer,.cookie-banner,dialog) .button.pink:hover{background:#cb295e;border-color:#cb295e;color:#fff}
body.kp-public :is(main,.site-header,.site-footer,.cookie-banner,dialog) .button.secondary,
body.kp-public .onboard-google{background:#fff;border:1px solid #b9aecb;color:var(--ink)}
body.kp-public :is(main,.site-header,.site-footer,.cookie-banner,dialog) .button.secondary:hover{background:var(--lavender);border-color:var(--link);color:var(--ink)}
body.kp-public :is(.sidebar-actions,.map-actions,.activity-pagination,.pagination,.view-switch) :is(.button,a,button){font:600 16px/1.35 var(--kp-body-font);min-height:44px;border-radius:999px;align-items:center;justify-content:center}
body.kp-public :is(.map-actions,.sidebar-actions) .button{padding:10px 14px}
body.kp-public .family-account-actions .family-delete{background:#fff;border-color:#cfa9b7;color:#a31a46}
body.kp-public .family-account-actions .family-delete:hover{background:#fff0f5;border-color:#a31a46;color:#a31a46}
body.kp-public .homepage .hero-city-search .button{border-radius:0 28px 28px 0;min-height:80px}
body.kp-public :is(.onboard-back,.onboard-text-link,.text-link){font-size:16px;font-weight:600;line-height:1.4}
body.kp-public .kp-event-foot>a{font-size:16px;min-height:44px}
body.kp-public .site-header nav{font:600 16px/1.4 var(--kp-body-font)}
body.kp-public .site-footer :is(p,a,button){font-size:14px;line-height:1.6}
body.kp-public .site-footer h3{font-size:20px}

/* Forms, card labels and navigation retain distinct semantic roles. */
body.kp-public :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea){font-family:var(--kp-body-font);font-size:16px;line-height:1.5}
body.kp-public :is(.public-form,.kp-price-filter,.activity-filters) :is(input:not([type=checkbox]):not([type=radio]),select){min-height:48px}
body.kp-public .homepage .hero-city-search .city-autocomplete input[type=text]{font-size:clamp(20px,1.53vw,22px)}
body.kp-public .public-form label{font-size:16px;font-weight:600}
body.kp-public .contact-page .public-form .field{font-size:19px;gap:10px}
body.kp-public .contact-page .public-form .field>span{font:600 19px/1.4 Onest,sans-serif}
body.kp-public .contact-page .public-form .form-grid{gap:24px}
body.kp-public .contact-page .public-form :is(input:not([type=checkbox]),textarea){font-size:18px;padding:14px 16px}
body.kp-public .contact-page .public-form .check-field{font-size:16px;font-weight:400;line-height:1.6}
body.kp-public .onboard-account-switch .onboard-create-account{font:700 19px/1.4 Onest,sans-serif;padding:14px 24px;background:var(--lavender)}
body.kp-public .onboard-legal{text-align:right}
body.kp-public:has(.impression-page){min-height:100svh;display:flex;flex-direction:column}
body.kp-public main.impression-page{flex:1;padding-block:56px 72px}
body.kp-public .impression-heading{margin-bottom:32px}
body.kp-public .impression-heading h1{font-size:clamp(34px,4vw,52px);line-height:1.12;margin:24px 0 20px}
body.kp-public .impression-heading p{font-size:18px;line-height:1.65;max-width:60ch}
body.kp-public .impression-login{padding:clamp(24px,4vw,40px);background:white;border:1px solid var(--line);border-radius:24px}
body.kp-public .impression-login h2{font-size:clamp(26px,3vw,32px);line-height:1.2;margin:0 0 16px}
body.kp-public .impression-login p{margin:0 0 24px;line-height:1.65}
body.kp-public .impression-page .public-form{max-width:none;padding:clamp(20px,4vw,40px)}
body.kp-public :is(.kp-place-search,.activity-search-bar) :is(small,label>span:first-child){font-size:14px}
body.kp-public :is(.kp-place-search,.activity-search-bar) :is(input,select){font-size:16px}
body.kp-public :is(.profile-nav,.activity-profile-nav) a{font:600 16px/1.4 var(--kp-body-font);min-height:44px;display:inline-flex;align-items:center}
body.kp-public :is(.profile-section,.public-form,.prose-page) :is(.fine-print,.field-note,small){font-size:14px;line-height:1.5}
body.kp-public :is(.activity-profile-facts,.vp-facts) strong{font:600 16px/1.4 var(--kp-body-font)}
body.kp-public :is(.activity-profile-facts,.vp-facts) small{font-size:14px;line-height:1.4}
body.kp-public .container{max-width:var(--kp-page-width);width:calc(100% - var(--kp-gutter)*2)}
body.kp-public main.container:is(.activity-v2,.venue-page,.kp-events-page){max-width:var(--kp-page-width);width:calc(100% - var(--kp-gutter)*2);padding-inline:0}
body.kp-public main.container:is(.prose-page,.form-page){max-width:900px}
body.kp-public main.container.methodology-page{max-width:1160px}
body.kp-public .methodology-page .prose{max-width:none}
body.kp-public :is(.activity-list-heading,.discovery-heading,.articles-heading,.city-intro,.kp-venue-list-heading){margin-bottom:32px}
body.kp-public :is(.activity-list-heading,.discovery-heading,.articles-heading,.page-intro,.city-intro) h1{margin-bottom:24px}
body.kp-public :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--link);outline-offset:4px}
body.kp-public ::selection{background:#e3d9fb;color:var(--ink)}
/* Match the specificity of legacy page rules so component roles win consistently. */
body.kp-public .kp-events-page .discovery-heading h1{font-size:var(--kp-page-title);line-height:1.08}
/* Shared public section hierarchy; card titles retain their compact role. */
body.kp-public .homepage :is(.section-heading,.weekend-heading,.wk-head,.newsletter-copy,.adventure-invitation-copy,.account-benefits) h2,
body.kp-public .contact-page :is(.partners-hero-copy,.contact-message-copy) h2,
body.kp-public :is(.kp-event-day,.kp-ongoing-section)>h2{font:700 var(--kp-section-title)/1.12 var(--kp-heading-font);letter-spacing:-.025em}
body.kp-public .homepage :is(.section-heading,.weekend-heading,.wk-head)>div>p,
body.kp-public .homepage :is(.section-heading,.weekend-heading,.newsletter-copy,.adventure-invitation-copy)>p,
body.kp-public .homepage .account-benefits>div>p,
body.kp-public .contact-page :is(.contact-hero>div,.partners-hero-copy,.contact-message-copy)>p,
body.kp-public :is(.kp-venue-list-heading,.kp-events-page .discovery-heading)>p{font:400 var(--kp-lead)/1.6 var(--kp-body-font)}
body.kp-public .homepage .home-venues .section-heading h2{font-size:var(--kp-section-title)}

body.kp-public .homepage .activity-discovery .section-heading>.button,
body.kp-public .venue-page .contact-card>.button.pink,
body.kp-public .homepage .newsletter-section .newsletter-form button.button.pink,
body.kp-public .homepage .news-section .all-articles-button{
 font:700 var(--kp-button)/1.3 var(--kp-heading-font);min-height:52px;padding:12px 22px;box-shadow:none
}
body.kp-public .activity-v2 .activity-booking .sidebar-actions .button{font:600 16px/1.35 var(--kp-body-font);min-height:44px;height:auto;padding:10px 14px}
body.kp-public .homepage .home-kind-filters a.chip{min-height:44px}
body.kp-public .homepage .location-line{font-size:var(--kp-small)}
body.kp-public .site-footer h3{color:var(--paper)}
body.kp-public .site-header .header-account :is(.header-cta,.account-menu>summary){font:700 20px/1.3 var(--kp-heading-font);padding:12px 20px;min-height:52px;background:var(--pink);color:#fff}
body.kp-public .site-header .mobile-signin{display:none}
body.kp-public .site-header .header-account .header-signin{display:inline-flex;font:700 19px/1.3 Onest,sans-serif;white-space:nowrap;min-height:52px;padding:12px 20px}
@media(max-width:1100px){body.kp-public{--kp-gutter:28px}.kp-public .site-header nav{gap:16px;font-size:14px}}
@media(max-width:760px){
 body.kp-public{--kp-gutter:20px;--kp-page-title:46px;--kp-detail-title:34px;--kp-section-title:36px;--kp-content-title:30px;--kp-card-title:22px;--kp-lead:18px}
 body.kp-public .site-header nav{font-size:18px}
 body.kp-public .site-header .header-account .header-signin{display:inline-flex;font:700 19px/1.3 Onest,sans-serif;white-space:nowrap;min-height:44px;padding:9px 8px}
 body.kp-public .site-header .mobile-signin:not([hidden]){display:block}
 body.kp-public .site-header .header-account :is(.header-cta,.account-menu>summary){padding:9px 12px;min-height:44px}
 body.kp-public .site-header .menu-toggle{min-width:44px;min-height:44px;width:44px}
 body.kp-public .container .container{width:100%}
 body.kp-public :is(.map-actions,.sidebar-actions) .button{font-size:16px;padding:10px 12px}
 body.kp-public .homepage .hero-city-search .button{min-height:76px;padding-inline:16px}
 body.kp-public .homepage .activity-category{min-width:0}
 body.kp-public .homepage .activity-category strong{min-width:0;overflow-wrap:anywhere}
 body.kp-public :is(.profile-section,.activity-card,.venue-card,.kp-event-card){min-width:0}
 body.kp-public .kp-event-top{flex-wrap:wrap}

}

/* Shared public shell: identical on catalog, editorial, partner and account pages. */
body.kp-public .site-header{position:relative;z-index:70;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);height:90px;gap:24px;padding-inline:max(32px,calc((100vw - 1480px)/2))}
body.kp-public .site-header>.logo{justify-self:start}
body.kp-public .site-header .logo img{display:block;width:190px;height:36px;object-fit:cover;object-position:center;image-rendering:auto}
body.kp-public .site-header>nav{position:static;margin:0;display:flex;align-items:center;justify-content:center;gap:24px;white-space:nowrap}
body.kp-public .site-header>.header-account{justify-self:end;margin:0;gap:12px}
body.kp-public .site-header>.menu-toggle{display:none}
body.kp-public .site-header [hidden]{display:none!important}
body.kp-public .site-footer{width:100%;max-width:none;margin:0;background:#331c7a;color:#fffcf7;padding:40px 0 0!important;border-top:0}
body.kp-public .site-footer .footer-main{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,240px) minmax(160px,220px);gap:clamp(28px,5vw,80px);padding-bottom:32px;width:calc(100% - var(--kp-gutter)*2);max-width:var(--kp-page-width);margin:0 auto;align-items:start}
body.kp-public .site-footer .footer-main img{display:block;width:220px;height:40px;object-fit:cover;object-position:center;image-rendering:auto}
body.kp-public .site-footer :is(p,a,button){color:#ede5fa}
body.kp-public .site-footer h3{color:#fff;margin-bottom:16px}
body.kp-public .site-footer .footer-main p{max-width:310px;margin-top:0;line-height:1.5}
body.kp-public .site-footer .footer-main>div>a:not(:has(img)){display:block;margin-bottom:12px;color:#ede5fa}
body.kp-public .site-footer .footer-bottom{width:calc(100% - var(--kp-gutter)*2);max-width:var(--kp-page-width);margin:0 auto;border-top:1px solid #ffffff26;background:transparent;color:#ede5fa;padding:20px 0!important;position:relative;align-items:center;justify-content:space-between;text-align:left;gap:12px 24px;flex-wrap:wrap}
body.kp-public .site-footer .footer-bottom>div{justify-content:center;align-items:center}
body.kp-public .site-footer [data-cookie-settings]{text-decoration:none}
.footer-meta{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-meta>span{font-size:12px}
body.kp-public .site-footer a:hover{color:white}
body.kp-public .partners-contact-content h2{color:#fff}
body.kp-public .activity-v2>.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 10px;min-height:60px;padding:18px 0;margin:0;font-size:13px;line-height:1.6;color:#746b83;font-weight:400}
body.kp-public .activity-v2>.breadcrumbs a{color:inherit}
body.kp-public .activity-v2>.breadcrumbs a:hover{color:var(--ink);text-decoration:underline}
body.kp-public .activity-v2>.activity-cover{margin-top:0}
body.kp-public .kp-place-search{padding:0;gap:0;overflow:hidden;border-radius:24px;align-items:stretch}
body.kp-public .kp-place-search>label{padding:12px 22px;justify-content:center;border-right:0}
body.kp-public .kp-place-search>label+label{border-left:1px solid var(--line)}
body.kp-public .kp-place-search>.button{align-self:stretch;height:auto;min-height:76px;margin:0;padding:16px 30px;border:0;border-radius:0 24px 24px 0;font:700 20px/1.3 Gabarito,sans-serif}
.account-navigation-status{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1000;background:#331c7a;color:#fff;padding:14px 22px;border-radius:12px;max-width:calc(100% - 32px)}
.account-navigation-status[hidden]{display:none}
[data-account-view] .onboard-flow-brand{display:none}
@media(max-width:1280px){
 body.kp-public .site-header{grid-template-columns:minmax(0,1fr) auto auto;height:80px;padding-inline:24px;gap:16px}
 body.kp-public .site-header>nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);padding:16px 24px;border-bottom:1px solid var(--line);box-shadow:0 12px 24px #331c7a12}
 body.kp-public .site-header>nav.is-open{display:flex}
 body.kp-public .site-header>nav a{padding:12px 0}
 body.kp-public .site-header>.menu-toggle{display:inline-grid;place-items:center;min-height:44px;min-width:44px;margin:0}
}
@media(max-width:760px){
 body.kp-public .site-header{height:76px;padding-inline:20px;gap:10px}
 body.kp-public .site-header .logo img{width:140px!important;height:28px}
 body.kp-public .site-header .header-account .header-signin{display:inline-flex;font:700 19px/1.3 Onest,sans-serif;white-space:nowrap;min-height:44px;padding:9px 8px}
 body.kp-public .site-header .header-account :is(.header-cta,.account-menu>summary){min-height:44px;padding:10px 12px;font-size:19px}
 body.kp-public .site-header .account-menu-panel{right:-54px;max-width:calc(100vw - 40px)}
 body.kp-public .site-footer{padding:32px 0 0!important}
 body.kp-public .site-footer .footer-main{width:calc(100% - 40px);grid-template-columns:1fr 1fr;gap:28px;text-align:left;justify-items:start}
 body.kp-public .site-footer .footer-main>div:first-child{grid-column:1/-1}
 body.kp-public .site-footer .footer-bottom{width:calc(100% - 40px);padding:18px 0!important;flex-direction:column;align-items:flex-start;gap:12px}
 body.kp-public .activity-v2>.breadcrumbs{min-height:56px;padding:16px 0;gap:4px 8px}
 body.kp-public .kp-place-search{grid-template-columns:minmax(0,1fr) auto;border-radius:20px}
 body.kp-public .kp-place-search>label{padding:12px 14px;min-height:64px;box-sizing:border-box}
 body.kp-public .kp-place-search>label+label{border:0}
 body.kp-public .kp-place-search .kp-query>span{min-width:0;width:100%}
 body.kp-public .kp-place-search>.kp-query{grid-column:1/-1;border-bottom:1px solid var(--line)}
 body.kp-public .kp-place-search>.button{grid-column:auto;width:auto;min-height:64px;border-radius:0 0 18px 0;padding:12px 20px}
 body.kp-public .kp-place-search.has-city{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.kp-public .kp-place-search.has-city>.button{grid-column:1/-1;border-radius:0 0 18px 18px;min-height:52px}
 body.kp-public .kp-venue-list :is(.kp-venue-list-heading>p,.city-intro>p,.kp-venue-list-heading:empty){display:none}
 body.kp-public .kp-venue-list .city-intro{margin-bottom:24px}
 body.kp-public .kp-venue-list .listing-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-bottom:20px}
 body.kp-public .kp-venue-list .results-heading p{margin:0}
 body.kp-public .kp-venue-list .listing-top{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;width:100%}
 body.kp-public .kp-venue-list .sort-label{width:100%;margin:0;display:flex;justify-content:space-between;border:0;padding:0}
 body.kp-public .kp-venue-list .sort-label select{max-width:75%;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:8px;font-size:14px}
 body.kp-public .kp-venue-list .view-switch{margin:0;display:flex;width:auto}
 body.kp-public .kp-venue-list .view-switch a{flex:1;display:flex;padding:10px 12px}
 body.kp-public .kp-place-chips{position:relative;gap:8px;margin-bottom:20px}
 body.kp-public .kp-price-filter{position:static}
 body.kp-public .kp-place-chips .chip{padding:8px 12px}
 body.kp-public .kp-price-filter form{left:0;right:0;top:calc(100% + 8px);width:100%;box-sizing:border-box}

}
@media(max-width:520px){
 body.kp-public .site-header{grid-template-columns:minmax(120px,1fr) auto 44px;padding-inline:8px!important;gap:6px!important}
 body.kp-public .site-header .logo img{width:120px!important;height:auto;object-fit:contain}
 body.kp-public .site-header>.header-account{gap:4px}
 body.kp-public .site-header .header-account a.header-signin{font-size:19px;padding-inline:8px;white-space:nowrap}
}
@media(max-width:374px){
 body.kp-public .site-header{padding-inline:4px!important;gap:4px!important}
 body.kp-public .site-header .header-account .header-signin{padding-inline:6px}
 body.kp-public .site-header .logo img{width:120px!important}
 body.kp-public .homepage .hero-city-search .button{min-height:52px;border-radius:0 0 20px 20px}
}
body.kp-public .site-footer{overflow:hidden}

body.kp-public .site-footer .footer-main>div:first-child{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}
body.kp-public .site-footer .footer-main>div:first-child>a{display:block;margin:0;line-height:0}
body.kp-public .site-footer .footer-main>div:first-child>a:not(:has(img)){line-height:1.5}
body.kp-public .site-footer .footer-main>div:first-child p{margin:0;font-size:15px;max-width:330px}
@media(max-width:760px){body.kp-public .site-footer .footer-main>div:first-child{align-items:flex-start}body.kp-public .site-footer .footer-main>div{width:100%}body.kp-public .site-footer .footer-main>div>a:not(:has(img)){display:flex;justify-content:flex-start;align-items:center;min-height:44px;margin:0}body.kp-public .site-footer .footer-bottom>div{justify-content:flex-start;flex-wrap:wrap;gap:8px 20px}body.kp-public .site-footer .footer-main h3{margin-bottom:8px}}
body.kp-public .footer-meteo{margin:0;font-size:12px;max-width:330px}.footer-meteo summary{cursor:pointer;min-height:32px;display:flex;align-items:center}.footer-meteo p{margin:8px 0}



/* Guide identity keeps the existing logo and header alignment. */
.site-header .logo{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0}
.guide-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-block:32px}
.guide-hub-tile{display:block;padding:28px;border:1px solid var(--line,#d8d2df);border-radius:24px;background:#fff;text-decoration:none}
.guide-hub-tile h2{font-size:28px}.guide-event figure{margin-inline:0}.guide-event dd{margin:0 0 20px}
@media(max-width:760px){.guide-hub-grid{grid-template-columns:1fr}}

.prose-page .article-cover{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;max-height:520px;margin:24px 0}.article-sources a{overflow-wrap:anywhere}.article-related,.article-sources{margin-block:40px}.article-byline,.article-dates{font-size:14px;color:var(--muted,#625780)}

/* Calendar subscriptions reuse the public controls and keep the URL selectable. */
.event-calendar-subscription{margin:24px 0 32px;border-block:1px solid var(--border,#D8D2DF);padding:8px 0}
.event-calendar-subscription summary{cursor:pointer;min-height:48px;align-content:center;font:700 16px/1.5 Onest,sans-serif;color:var(--ink,#331C7A)}
.event-calendar-subscription summary:focus-visible{outline:3px solid var(--link,#6B54D3);outline-offset:4px}
.event-calendar-subscription>div{display:grid;gap:16px;max-width:760px;padding:8px 0 16px}
.event-calendar-subscription>div>.button{justify-self:start}
.event-calendar-subscription p,.guide-event .event-calendar-note{font:400 16px/1.6 Onest,sans-serif;color:var(--muted,#625878)}
.event-calendar-subscription label{display:grid;gap:8px;font:600 14px/1.5 Onest,sans-serif}
.event-calendar-subscription input{width:100%;min-width:0;box-sizing:border-box;min-height:48px;padding:12px;border:1px solid var(--border,#D8D2DF);border-radius:12px;background:#fff;color:var(--ink,#331C7A);font:400 16px/1.5 Onest,sans-serif}
.guide-event p:has(>.button){display:flex;flex-wrap:wrap;gap:12px}

/* Automatic imports carry their verification status on public cards. */
.event-verification{display:inline-flex;align-items:center;background:#fdf1dc;color:#6b4500;border:1px solid #e8cc91;border-radius:999px;padding:4px 10px;font:600 13px/1.4 Onest,sans-serif;width:fit-content}.wk-card-body>.event-verification{margin-bottom:10px}

/* Pagination carries a persistent, clearly visible current page. */
body.kp-public :is(.pagination,.activity-pagination){display:flex;flex-wrap:wrap;gap:10px;margin:32px 0 64px}body.kp-public :is(.pagination,.activity-pagination) a{display:inline-flex;min-width:48px;min-height:48px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink)}body.kp-public :is(.pagination,.activity-pagination) a[aria-current="page"]{background:#331c7a;color:#fff;border-color:#331c7a;font-weight:700}

/* Disclose panels after interaction, without a JS-induced first-paint jump. No-JS forms stay visible. */
@media(scripting:enabled){#activity-search-panel:not([data-tools-ready]),#activity-filter-panel:not([data-tools-ready]){display:none!important}.catalog-compact-tools[hidden],.activity-compact-tools[hidden]{display:flex!important}}

/* Editorial identity: a quiet, readable author profile outside the article body. */
.article-author{display:flex;align-items:flex-start;gap:24px;margin-block:40px;padding:28px;border:1px solid var(--border,#D8D2DF);border-radius:24px;background:#fff;scroll-margin-top:100px}.article-author>div{min-width:0}.article-author .article-author-photo{flex:0 0 112px;width:112px;height:112px;object-fit:cover;border-radius:50%;margin:0}.article-author .article-author-label{margin:0 0 6px;font-size:13px;color:var(--muted,#625878)}.article-author h2{margin:0;font-size:26px;line-height:1.2}.article-author .article-author-role{margin:6px 0 14px;font-size:14px;color:var(--muted,#625878)}.article-author .article-author-bio{margin:0;font-size:16px;line-height:1.7;white-space:pre-line}.article-byline a{text-underline-offset:3px}@media(max-width:600px){.article-author{flex-direction:column;gap:16px;padding:24px}.article-author .article-author-photo{flex-basis:auto;width:88px;height:88px}}

/* Editorial reading rhythm: distinct lead, generous heading separation, quiet credits. */
body.kp-public .editorial-article .page-intro .article-lead{font:500 clamp(22px,2.4vw,28px)/1.45 Gabarito,sans-serif;color:var(--ink,#331C7A);max-width:760px;margin:28px 0 0;padding-left:24px;border-left:4px solid var(--pink,#F4467E)}
body.kp-public .editorial-article .prose h2{margin:48px 0 22px}
body.kp-public .editorial-article .prose h3{margin:32px 0 18px}
.editorial-article .article-credits{margin-top:48px;padding-top:24px;border-top:1px solid var(--line,#D8D2DF)}
.editorial-article .article-credits .article-byline{margin:0 0 8px}.editorial-article .article-credits .article-dates{margin:0}
.editorial-article .article-credits .article-author{margin:24px 0 0}.article-author h2 a{text-decoration:none}.article-author h2 a:hover{text-decoration:underline}
.article-author .article-methodology{margin:18px 0 0;font-size:14px}.article-methodology a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){body.kp-public .editorial-article .page-intro .article-lead{padding-left:18px;margin-top:24px}body.kp-public .editorial-article .prose h2{margin-top:36px}}

.author-profile-heading{display:flex;gap:32px;align-items:center;margin:40px 0}.author-profile-heading>img{width:180px;height:180px;object-fit:cover;border-radius:50%}.author-profile-heading h1{margin:8px 0 12px}.author-profile-heading p{margin:0}.author-profile .prose p{margin-bottom:24px}.author-profile .prose h2{margin:40px 0 20px}.author-articles{margin-top:48px;padding-top:32px;border-top:1px solid var(--line,#D8D2DF)}.author-articles ul{padding:0;list-style:none}.author-articles li{display:grid;gap:8px;padding:24px 0;border-bottom:1px solid var(--line,#D8D2DF)}.author-articles time{font-size:14px;color:var(--muted,#625878)}.author-articles li a{font:700 24px/1.3 Gabarito,sans-serif;text-underline-offset:4px}
@media(max-width:600px){.author-profile-heading{align-items:flex-start;flex-direction:column;gap:24px;margin:32px 0}.author-profile-heading>img{width:128px;height:128px}}
