/* Inner pages (frontend/includes/page-hero + the pages' bodies).
   Light ice-blue page with a big title, white rounded cards, navy accents and an orange call to action. */

.pg-hero, .pg {
	--pg-navy: #0E2546;
	--pg-ink: #0E2340;
	--pg-text: #3D506A;
	--pg-muted: #5B6E86;
	--pg-line: #D3E3F0;
	--pg-blue: #0E5F95;
	--pg-link: #1D6FA8;
	--pg-sky: #EEF6FC;
	--pg-field: #F5FAFE;
	--pg-orange: #C4410E;
	--pg-orange-dark: #A93709;
	--pg-ok: #157A4F;
	--pg-ok-soft: #E5F4EC;
	--pg-err: #B42318;
	--pg-err-soft: #FDECEC;
	--pg-shadow: 0 12px 34px rgba(16, 60, 110, .07);
	--pg-font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--pg-display: "Fredoka", "DM Sans", system-ui, sans-serif;
}
.pg *, .pg *::before, .pg *::after, .pg-hero * { box-sizing: border-box; }
.pg-wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ------------------------------------------------------------------ page header: navy band, icicles, snowfall */
.pg-hero {
	position: relative; overflow: hidden; float: none; clear: both; width: 100%;
	background: radial-gradient(120% 140% at 85% 0%, #1A3B85 0%, #0F2152 55%, #0A1838 100%);
	color: #fff; font-family: var(--pg-font);
}
.pg-hero::before { content: ""; position: absolute; z-index: 2; top: 0; left: 0; right: 0; height: 71px; background: url(../img/ice.png) repeat-x left top; pointer-events: none; }
.pg-hero-snow { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.pg-hero-inner { position: relative; z-index: 1; padding-top: 76px; padding-bottom: 44px; }
.pg-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; color: rgba(255, 255, 255, .6); font-size: 13px; }
.pg-crumbs a { color: rgba(255, 255, 255, .85); text-decoration: underline; text-underline-offset: 2px; }
.pg-crumbs a:hover { color: #fff; }
.pg-crumbs [aria-current] { color: #fff; font-weight: 600; }
.pg-hero-eyebrow { margin: 0 0 6px; color: #8CC8F2; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.pg-hero h1 { margin: 0; color: #fff; font: 700 clamp(30px, 3.8vw, 44px)/1.1 var(--pg-display); letter-spacing: 0; }
.pg-hero-lead { max-width: 680px; margin: 12px 0 0; color: rgba(255, 255, 255, .84); font-size: 16px; line-height: 1.6; }

/* ------------------------------------------------------------------ body */
.pg { float: none; clear: both; width: 100%; background: var(--pg-sky); color: var(--pg-ink); font: 400 15px/1.6 var(--pg-font); }
.pg-body { padding-top: 36px; padding-bottom: 64px; }
:where(.pg) h2, :where(.pg) h3, :where(.pg) h4 { margin: 0; color: var(--pg-ink); font-family: var(--pg-display); font-weight: 700; letter-spacing: 0; }
:where(.pg) p { margin: 0; }
:where(.pg) ul, :where(.pg) ol { margin: 0; padding: 0; }
.pg a { color: var(--pg-link); }
.pg a:hover { color: var(--pg-ink); }
.pg img { max-width: 100%; }
.pg-h2 { font-size: clamp(21px, 2.2vw, 25px) !important; line-height: 1.2; }
.pg-eyebrow { margin-bottom: 6px !important; color: var(--pg-blue); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pg-muted { color: var(--pg-text); }
.pg-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; margin-bottom: 20px; }
.pg-section + .pg-section, .pg-body > .pg-section:not(:first-child) { margin-top: 44px; }
.pg-gap { margin-top: 20px; }
.pg-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pg-more { color: var(--pg-link); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.pg-more-orange { color: var(--pg-orange) !important; font-weight: 700; text-decoration: none !important; }
.pg-more-orange:hover { color: var(--pg-orange-dark) !important; }

/* main column + sidebar */
.pg-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.pg-side { display: grid; gap: 18px; }

.pg-card { padding: 28px 30px; border-radius: 22px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-card + .pg-card { margin-top: 18px; }
.pg-card-title { margin-bottom: 12px !important; font-size: 21px !important; }
.pg-card-sub { margin: -8px 0 22px !important; color: var(--pg-text); }

/* navy blocks */
.pg-navy { background: var(--pg-navy) !important; color: rgba(255, 255, 255, .82); }
.pg .pg-navy h2, .pg .pg-navy h3, .pg .pg-navy strong { color: #fff; }
.pg .pg-navy a:not(.pg-btn) { color: #8FD0FF; }
.pg .pg-navy a:not(.pg-btn):hover { color: #fff; }

/* long text (legal pages, blog posts) */
.pg-prose { color: var(--pg-text); font-size: 15px; line-height: 1.7; }
.pg-prose > * + * { margin-top: 16px !important; }
.pg-prose h2 { margin-top: 32px !important; font-size: 24px; }
.pg-prose h3 { margin-top: 26px !important; font-size: 20px; }
.pg-prose ol, .pg-prose ul { padding-left: 22px; }
.pg-prose li + li { margin-top: 8px; }
.pg-prose li > ul, .pg-prose li > ol { margin-top: 8px; }
.pg-prose .text-justify { text-align: left; }
.pg-prose a { text-decoration: underline; }
.pg-prose img { height: auto; border-radius: 16px; }
.pg-prose table { width: 100%; border-collapse: collapse; }
.pg-prose td, .pg-prose th { padding: 8px 10px; border: 1px solid var(--pg-line); }
.pg-prose > ol > li { padding-left: 4px; }
.pg-prose > ol > li + li { margin-top: 22px; }
.pg-prose > ol > li > strong:first-child { display: block; margin-bottom: 6px; color: var(--pg-ink); font: 700 18px/1.3 var(--pg-display); }
.pg-prose > ol > li::marker { color: var(--pg-blue); font-weight: 700; }

/* check list */
.pg-checks { list-style: none; display: grid; gap: 10px; }
.pg-checks li { position: relative; padding-left: 30px; color: var(--pg-text); }
.pg-checks li::before {
	content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--pg-ok-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23157A4F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* buttons */
.pg-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px; border: 0; border-radius: 13px;
	font: 700 15px/1 var(--pg-font); text-decoration: none !important; cursor: pointer; transition: background .15s, transform .15s, border-color .15s, color .15s;
}
.pg-btn:hover { transform: translateY(-1px); }
.pg-btn:disabled { opacity: .6; cursor: default; transform: none; }
.pg .pg-btn-primary { background: var(--pg-orange); color: #fff; box-shadow: 0 10px 22px rgba(196, 65, 14, .25); }
.pg .pg-btn-primary:hover { background: var(--pg-orange-dark); color: #fff; }
.pg .pg-btn-navy { background: var(--pg-navy); color: #fff; }
.pg .pg-btn-navy:hover { background: #1A3A66; color: #fff; }
.pg .pg-btn-outline { border: 2px solid var(--pg-line); background: #fff; color: var(--pg-ink); }
.pg .pg-btn-outline:hover { border-color: var(--pg-link); color: var(--pg-link); }
.pg .pg-btn-light { background: #fff; color: var(--pg-ink); }
.pg .pg-btn-light:hover { background: #EAF4FB; color: var(--pg-ink); }
.pg .pg-btn-outline-light { border: 2px solid rgba(255, 255, 255, .45); background: transparent; color: #fff; }
.pg .pg-btn-outline-light:hover { border-color: #fff; background: rgba(255, 255, 255, .06); color: #fff; }
.pg-btn-sm { min-height: 38px; padding: 0 16px; border-radius: 11px; font-size: 14px; }
.pg-btn-block { width: 100%; }

/* help card */
.pg-help { padding: 26px; border-radius: 22px; background: var(--pg-navy); color: rgba(255, 255, 255, .82); box-shadow: var(--pg-shadow); }
.pg-help-art { width: 84px; height: 70px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; border-radius: 18px; background: #fff; }
.pg-help-art img { max-height: 56px; width: auto; }
.pg .pg-help h2 { color: #fff; font-size: 22px; line-height: 1.2; }
.pg-help p { margin-top: 8px !important; font-size: 14px; }
.pg-help-actions { display: grid; gap: 10px; margin-top: 18px; }

/* call card */
.pg-call { display: flex; align-items: center; gap: 14px; padding: 18px 22px; border-radius: 20px; background: var(--pg-navy); color: rgba(255, 255, 255, .82); text-decoration: none !important; }
.pg-call-icon { flex: 0 0 46px; height: 46px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #1C3D6A; color: #8FD0FF; }
.pg-call-text span { display: block; color: rgba(255, 255, 255, .8); font-size: 13px; }
.pg-call-text strong { display: block; color: #fff; font: 700 22px/1.15 var(--pg-display); letter-spacing: .01em; }
a.pg-call:hover strong { color: #FFD23F; }

/* info list (label / value rows) */
.pg-facts { display: grid; gap: 10px; margin: 0; }
.pg-facts div { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid #EEF3F8; }
.pg-facts div:last-child { padding-bottom: 0; border-bottom: 0; }
.pg-facts dt { color: var(--pg-text); font-weight: 400; }
.pg-facts dd { margin: 0; color: var(--pg-ink); font-weight: 700; text-align: right; }
.pg-facts dd a { color: var(--pg-ink); text-decoration: none; }
.pg-facts dd a:hover { color: var(--pg-link); }

/* stat cards (about) */
.pg-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; list-style: none; }
.pg-stat { padding: 20px 24px; border-radius: 20px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-stat strong { display: block; color: var(--pg-ink); font: 700 30px/1.15 var(--pg-display); }
.pg-stat span { color: var(--pg-text); font-size: 14px; }
.pg-stat.pg-navy strong { color: #fff; }
.pg-stat.pg-navy span { color: rgba(255, 255, 255, .8); }

/* image + text card */
.pg-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; align-items: center; }
.pg-feature-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; background: #DCEBF7; }
.pg-feature h2 { margin-bottom: 12px !important; font-size: 25px; }
.pg-feature p + p { margin-top: 12px !important; }
.pg-feature p { color: var(--pg-text); font-size: 15px; line-height: 1.7; }
.pg-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; list-style: none; }
.pg-chip { padding: 6px 14px; border: 1.5px solid var(--pg-line); border-radius: 999px; background: #fff; color: var(--pg-ink); font-size: 13px; font-weight: 600; }
.pg-chips-soft .pg-chip { border: 0; background: #E6F1FA; font-weight: 500; }
.pg-note { color: var(--pg-text); font-size: 13px; line-height: 1.6; }
.pg-feature .pg-note { margin-top: 14px !important; }

/* two columns inside a card */
.pg-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 44px; }
.pg-split h2 { margin-bottom: 10px !important; font-size: 23px; }
.pg-split p { color: var(--pg-text); font-size: 15px; line-height: 1.7; }

/* closing call to action */
.pg-band { display: flex; align-items: center; justify-content: space-between; gap: 16px 28px; flex-wrap: wrap; padding: 28px 36px; border-radius: 24px; background: var(--pg-navy); }
.pg .pg-band h2 { color: #fff; font-size: 25px; }
.pg-band p { margin-top: 4px !important; color: rgba(255, 255, 255, .82); font-size: 15px; }

/* pill tabs */
.pg-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.pg-tab {
	min-height: 42px; padding: 0 18px; border: 1.5px solid var(--pg-line); border-radius: 999px; background: #fff;
	color: var(--pg-ink) !important; font: 700 14px var(--pg-font); text-decoration: none !important; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: border-color .15s;
}
.pg-tab:hover { border-color: var(--pg-link); }
.pg-tab[aria-selected="true"], .pg-tab.is-current { border-color: var(--pg-navy); background: var(--pg-navy); color: #fff !important; }
.pg-tab-count { min-width: 24px; height: 24px; padding: 0 7px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #E6F1FA; color: var(--pg-ink); font-size: 12px; }
.pg-tab[aria-selected="true"] .pg-tab-count { background: rgba(255, 255, 255, .18); color: #fff; }

/* forms */
.pg-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.pg-field { display: flex; flex-direction: column; gap: 6px; margin: 0; color: var(--pg-ink); font-size: 14px; font-weight: 700; }
.pg-field-wide { grid-column: 1 / -1; }
.pg-input, .pg-field input, .pg-field select, .pg-field textarea {
	width: 100%; height: 48px; padding: 0 16px; border: 1.5px solid var(--pg-line); border-radius: 13px; background: var(--pg-field);
	color: var(--pg-ink); font: 400 15px var(--pg-font); transition: border-color .15s, box-shadow .15s, background .15s;
}
.pg-field select { cursor: pointer; }
.pg-field textarea { height: auto; min-height: 100px; padding: 12px 16px; resize: vertical; }
.pg-field input::placeholder, .pg-field textarea::placeholder { color: #7F90A6; }
.pg-field input:focus, .pg-field select:focus, .pg-field textarea:focus { outline: none; border-color: var(--pg-link); background: #fff; box-shadow: 0 0 0 4px rgba(29, 111, 168, .12); }
.pg-field input[readonly] { cursor: pointer; }
.pg-field-error { color: var(--pg-err); font-size: 14px; font-weight: 500; }
.pg-field-error:empty { display: none; }
.pg-check { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: var(--pg-text); font-size: 15px; font-weight: 400; }
.pg-check input { width: 20px; height: 20px; margin: 2px 0 0; flex-shrink: 0; }
.pg-form-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 6px; }
.pg-form-actions .pg-btn { min-height: 48px; }
.pg-alert { padding: 12px 16px; border-radius: 13px; font-size: 14px; }
.pg-alert[hidden] { display: none; }
.pg-alert-ok { background: var(--pg-ok-soft); color: #155C39; }
.pg-alert-err { background: var(--pg-err-soft); color: var(--pg-err); }
.pg-info { display: flex; gap: 12px; align-items: flex-start; margin-top: 22px; padding: 16px 18px; border-radius: 14px; background: #EAF4FB; color: var(--pg-text); font-size: 14px; line-height: 1.6; }
.pg-info svg { flex: 0 0 auto; margin-top: 3px; color: var(--pg-link); }

/* session tiles */
.pg-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; list-style: none; }
.pg-times li { padding: 9px 13px; border: 1.5px solid var(--pg-line); border-radius: 12px; background: var(--pg-field); }
.pg-times strong { display: block; color: var(--pg-ink); font-size: 15px; line-height: 1.3; }
.pg-times span { color: var(--pg-text); font-size: 12px; }
.pg-side-title { display: flex; align-items: center; gap: 10px; }
.pg-side-title svg { color: var(--pg-link); flex: 0 0 auto; }

/* price table (group packages) */
.pg-ptable { width: 100%; border-collapse: collapse; }
.pg-ptable th { padding: 0 0 6px; color: var(--pg-blue); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-align: right; text-transform: uppercase; }
.pg-ptable th:first-child { text-align: left; }
.pg-ptable td { padding: 5px 0; color: var(--pg-text); font-size: 15px; text-align: right; white-space: nowrap; }
.pg-ptable td:first-child { color: var(--pg-ink); text-align: left; }
.pg-ptable th + th, .pg-ptable td + td { padding-left: 22px; }
.pg-ptable-strong td:first-child { font-weight: 700; }

/* ticket price cards */
.pg-prices { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; list-style: none; }
.pg-price { display: flex; flex-direction: column; gap: 10px; padding: 20px; border: 1.5px solid var(--pg-line); border-radius: 18px; background: #fff; }
.pg-price-top { display: flex; align-items: center; gap: 12px; }
.pg-price-top img { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; background: var(--pg-sky); }
.pg-price-name { color: var(--pg-ink); font-weight: 700; font-size: 15px; }
.pg-price-amount { color: var(--pg-ink); font: 700 30px/1 var(--pg-display); }
.pg-price-tax { color: var(--pg-text); font-size: 13px; }
.pg-price-desc { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; color: var(--pg-text); font-size: 14px; }
.pg-price .pg-btn { margin-top: auto; }
.pg-price-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; list-style: none; }
.pg-price-tiles li { padding: 12px 16px; border-radius: 13px; background: var(--pg-field); }
.pg-price-tiles span { display: block; color: var(--pg-text); font-size: 13px; font-weight: 600; }
.pg-price-tiles strong { display: block; color: var(--pg-ink); font: 700 24px/1.2 var(--pg-display); }

/* FAQ */
.pg-faq { display: grid; gap: 10px; counter-reset: faq; }
.pg-faq details { counter-increment: faq; border: 1.5px solid transparent; border-radius: 18px; background: #fff; box-shadow: var(--pg-shadow); transition: border-color .15s; }
.pg-faq details[open] { border-color: var(--pg-navy); }
.pg-faq summary { position: relative; display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 14px 64px 14px 22px; color: var(--pg-ink); font-weight: 700; font-size: 16px; list-style: none; cursor: pointer; }
.pg-faq summary::before { content: counter(faq) "."; flex: 0 0 auto; color: var(--pg-blue); font-weight: 700; }
.pg-faq summary::-webkit-details-marker { display: none; }
.pg-faq summary::after {
	content: ""; position: absolute; right: 18px; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%;
	background: #E6F1FA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2546' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 15px no-repeat;
}
.pg-faq details[open] summary::after {
	background: var(--pg-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 15 6-6 6 6'/%3E%3C/svg%3E") center / 15px no-repeat;
}
.pg-faq summary:focus-visible { outline: 2px solid var(--pg-link); outline-offset: 4px; border-radius: 22px; }
.pg-faq-body { padding: 0 22px 20px 46px; color: var(--pg-text); font-size: 15px; line-height: 1.65; }
.pg-faq-body .pg-ptable { margin-top: 14px; }
.pg-faq-body .pg-note { margin-top: 10px !important; font-size: 13px; }

/* safety rules */
.pg-warn { padding: 24px 26px; border: 1.5px solid #F5C04A; border-radius: 22px; background: #FFF1D6; }
.pg-warn-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.pg-warn-icon { flex: 0 0 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #F7B92B; color: #5A3500; }
.pg .pg-warn h2 { color: #5A3500; font-size: 20px; }
.pg-warn ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; list-style: none; }
.pg-warn li { padding: 13px 16px; border-radius: 12px; background: #fff; color: var(--pg-ink); font-size: 14px; font-weight: 500; line-height: 1.4; }
.pg-warn p { margin-top: 14px !important; color: #5A3D12; font-size: 13px; }
.pg-rule-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 20px; list-style: none; counter-reset: rc; }
.pg-rule-card { padding: 24px 26px; border-radius: 22px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-rule-card:not(.pg-navy) { counter-increment: rc; }
.pg-rule-card:not(.pg-navy)::before { content: counter(rc); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; border-radius: 50%; background: var(--pg-navy); color: #fff; font: 700 15px var(--pg-display); }
.pg-rule-card h3 { margin-bottom: 8px !important; font-size: 19px; }
.pg-rule-card p { color: var(--pg-text); font-size: 14px; line-height: 1.65; }
.pg-rule-card.pg-navy p { color: rgba(255, 255, 255, .82); }
.pg-rule-card.pg-navy h3 { font-size: 21px; }
.pg-rule-card.pg-navy .pg-more { display: inline-block; margin-top: 14px; color: #8FD0FF; text-decoration: none; }

/* terms */
.pg-glance { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; list-style: none; }
.pg-glance li { padding: 16px; border-radius: 16px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-glance strong { display: block; margin-bottom: 4px; color: var(--pg-blue); font: 700 17px/1.2 var(--pg-display); }
.pg-glance span { color: var(--pg-text); font-size: 13px; line-height: 1.45; }
.pg-numbered { list-style: none; counter-reset: num; }
.pg-numbered li { counter-increment: num; display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px solid #E3EDF5; color: var(--pg-text); font-size: 15px; line-height: 1.6; }
.pg-numbered li::before { content: counter(num); flex: 0 0 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #E6F1FA; color: var(--pg-blue); font-size: 14px; font-weight: 700; }
.pg-side-card h2 { margin-bottom: 8px !important; font-size: 19px; }
.pg-side-card p { color: var(--pg-text); font-size: 14px; line-height: 1.6; }

/* gallery */
.pg-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; list-style: none; }
.pg-gallery a { position: relative; display: block; overflow: hidden; border-radius: 18px; background: #DCEBF7; box-shadow: var(--pg-shadow); aspect-ratio: 4 / 3; }
.pg-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.pg-gallery a:hover img { transform: scale(1.05); }
.pg-play { position: absolute; left: 50%; top: 50%; width: 62px; height: 62px; margin: -31px 0 0 -31px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--pg-orange); box-shadow: 0 8px 22px rgba(0, 0, 0, .25); transition: transform .2s; }
.pg-gallery a:hover .pg-play { transform: scale(1.08); }

/* characters */
.pg-chars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; list-style: none; }
.pg-char { display: flex; flex-direction: column; overflow: hidden; height: 100%; border-radius: 22px; background: #fff; box-shadow: var(--pg-shadow); color: inherit !important; text-decoration: none !important; transition: transform .2s, box-shadow .2s; }
.pg-char:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(16, 60, 110, .12); }
.pg-char-art { height: 200px; display: flex; align-items: center; justify-content: center; }
.pg-char-art img { max-height: 145px; width: auto; transition: transform .3s; }
.pg-char:hover .pg-char-art img { transform: scale(1.06) rotate(-2deg); }
.pg-char-body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 18px 22px 22px; }
.pg-char-name { color: var(--pg-blue); font: 700 23px/1.15 var(--pg-display); }
.pg-char-body p { color: var(--pg-text); font-size: 14px; }
.pg-char-more { margin-top: auto; padding-top: 4px; color: var(--pg-orange); font-weight: 700; font-size: 14px; }

.pg-villager { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 36px; align-items: center; padding: 28px; }
.pg-villager-art { display: flex; align-items: center; justify-content: center; aspect-ratio: 5 / 4; border-radius: 20px; }
.pg-villager-art img { max-height: 78%; width: auto; }
.pg-role { display: inline-block; padding: 5px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.pg-role-red { background: #FDE3E3; color: #B42318; }
.pg-role-blue { background: #DDEBFB; color: #1D5FA8; }
.pg-role-amber { background: #FDEFD3; color: #9A5B00; }
.pg-role-green { background: #DFF3E7; color: #157A4F; }
.pg-villager h2, .pg .pg-villager-name { margin: 14px 0 10px !important; color: var(--pg-blue); font-size: 26px; line-height: 1.15; }
.pg-villager p { color: var(--pg-text); font-size: 15px; line-height: 1.7; }
.pg-villager-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.pg-friends { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; list-style: none; }
.pg-friends a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 10px 14px; border-radius: 18px; background: #fff; box-shadow: var(--pg-shadow); text-decoration: none !important; transition: transform .2s; }
.pg-friends a:hover { transform: translateY(-3px); }
.pg-friends img { height: 80px; width: auto; object-fit: contain; }
.pg-friends span { color: var(--pg-blue); font: 700 16px var(--pg-display); }

/* comic episodes */
.pg-episodes { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; max-width: 720px; list-style: none; }
.pg-episode { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-episode-cover { display: block; padding: 14px 14px 0; background: #F2F7FB; }
.pg-episode-cover img { display: block; width: 100%; aspect-ratio: 263 / 174; object-fit: cover; border-radius: 6px; box-shadow: 0 2px 6px rgba(0, 0, 0, .12); }
.pg-episode-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; }
.pg-episode-foot strong { display: block; color: var(--pg-ink); font: 700 19px/1.2 var(--pg-display); }
.pg-episode-foot span { color: var(--pg-text); font-size: 13px; }
.pg-episode-open { flex: 0 0 42px; height: 42px; border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--pg-navy); color: #fff !important; transition: transform .2s; }
.pg-episode-open:hover { transform: scale(1.06); }

/* blog */
.pg-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; list-style: none; }
.pg-post-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: 26px; background: #fff; box-shadow: var(--pg-shadow); text-decoration: none !important; transition: transform .2s, box-shadow .2s; }
.pg-post-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(16, 60, 110, .12); }
.pg-post-card img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: #DCEBF7; }
.pg-post-card-body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 20px 24px 24px; }
.pg-post-date { color: var(--pg-text); font-size: 14px; }
.pg-post-card h2 { color: var(--pg-ink); font-size: 18px; line-height: 1.3; }
.pg-post-more { margin-top: auto; color: var(--pg-orange); font-weight: 700; font-size: 15px; }
.pg-article-img { display: block; width: 100%; max-height: 460px; object-fit: cover; border-radius: 20px; margin-bottom: 26px; }
.pg-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; padding-top: 20px; border-top: 1px solid #EEF3F8; list-style: none; }
.pg-tags li { padding: 6px 14px; border-radius: 999px; background: #E6F1FA; color: var(--pg-blue); font-size: 14px; font-weight: 600; }
.pg-recent { display: grid; gap: 14px; list-style: none; }
.pg-recent a { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: center; color: var(--pg-ink); text-decoration: none !important; }
.pg-recent img { width: 84px; height: 64px; object-fit: cover; border-radius: 12px; background: #DCEBF7; }
.pg-recent strong { display: block; font-size: 15px; line-height: 1.35; }
.pg-recent a:hover strong { color: var(--pg-link); }
.pg-recent span { color: var(--pg-text); font-size: 13px; }

/* contact */
.pg-contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; list-style: none; }
.pg-contact-card { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 20px; border-radius: 20px; background: #fff; box-shadow: var(--pg-shadow); color: var(--pg-ink) !important; text-decoration: none !important; transition: transform .2s; }
a.pg-contact-card:hover { transform: translateY(-3px); }
.pg-contact-card .pg-icon { margin-bottom: 8px; }
.pg-contact-card strong { font-size: 16px; }
.pg-contact-card span { color: var(--pg-text); font-size: 14px; word-break: break-word; }
.pg-icon { width: 42px; height: 42px; flex: 0 0 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 16px; background: #E1EFFA; color: var(--pg-link); }
.pg-parks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; list-style: none; }
.pg-park { display: flex; flex-direction: column; gap: 8px; padding: 22px; border: 1.5px solid transparent; border-radius: 20px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-park.is-current { border-color: var(--pg-navy); }
.pg-park-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pg-park h3 { font-size: 19px; }
.pg-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; background: #E1EFFA; color: var(--pg-blue); font-size: 12px; font-weight: 700; white-space: nowrap; }
.pg-badge-ok { background: var(--pg-ok-soft); color: var(--pg-ok); }
.pg-badge-warn { background: #FFF1E6; color: #B4500E; }
.pg-badge-muted { background: #F1F4F8; color: #5B6B80; }
.pg-park address { margin: 0; color: var(--pg-text); font-style: normal; font-size: 14px; }
.pg-park-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 6px; }

/* activities */
.pg-activity { display: grid; grid-template-columns: 280px minmax(0, 1fr); overflow: hidden; border-radius: 22px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-activity + .pg-activity { margin-top: 20px; }
.pg-activity img { display: block; width: 100%; height: 100%; min-height: 200px; object-fit: cover; background: #DCEBF7; }
.pg-activity-body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 22px 26px; }
.pg-activity h2 { font-size: 21px; }
.pg-activity p { color: var(--pg-text); }

/* bookings (dashboard) */
.pg-bookings { display: grid; gap: 16px; list-style: none; }
.pg-booking { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: var(--pg-shadow); }
.pg-booking-main { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 20px 24px; }
.pg-booking-date { padding: 10px 6px; border-radius: 18px; background: var(--pg-sky); text-align: center; }
.pg-booking-date span { display: block; color: var(--pg-blue); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.pg-booking-date strong { display: block; color: var(--pg-ink); font: 700 30px/1.1 var(--pg-display); }
.pg-booking h3 { font-size: 18px; }
.pg-booking-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px !important; color: var(--pg-text); font-size: 14px; }
.pg-booking-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.pg-booking-actions form { margin: 0; }
.pg-booking details { border-top: 1px solid #EEF3F8; }
.pg-booking summary { padding: 12px 24px; color: var(--pg-link); font-weight: 700; font-size: 15px; cursor: pointer; list-style: none; }
.pg-booking summary::-webkit-details-marker { display: none; }
.pg-booking summary::after { content: " ▾"; }
.pg-booking details[open] summary::after { content: " ▴"; }
.pg-booking-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 4px 24px 22px; }
.pg-booking-detail .pg-facts dd { font-weight: 600; }
.pg-total dd { font-size: 17px; }

/* empty state */
.pg-empty { padding: 40px 24px 44px; border: 1.5px dashed #BBD3E8; border-radius: 22px; background: #fff; text-align: center; }
.pg-empty-art { height: 104px; width: auto; margin: 0 auto 16px; }
.pg-empty h2 { font-size: 23px; }
.pg-empty p { max-width: 500px; margin: 8px auto 0 !important; color: var(--pg-text); font-size: 15px; line-height: 1.6; }
.pg-empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 20px; }

/* centred card pages (register, reset) */
.pg-narrow { max-width: 640px; margin: 0 auto; }

/* ------------------------------------------------------------------ smaller screens */
@media (max-width: 1100px) {
	.pg-glance { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pg-warn ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
	.pg-layout { grid-template-columns: 1fr; }
	.pg-posts, .pg-chars, .pg-rule-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pg-feature, .pg-villager { grid-template-columns: 1fr; gap: 28px; }
	.pg-villager-art { max-width: 420px; width: 100%; margin: 0 auto; }
	.pg-friends { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.pg-wrap { padding-left: 16px; padding-right: 16px; }
	.pg-hero::before { height: 48px; background-size: auto 48px; }
	.pg-hero-inner { padding-top: 60px; padding-bottom: 34px; }
	.pg-hero-lead { font-size: 15px; }
	.pg-body { padding-bottom: 56px; }
	.pg-card { padding: 22px 18px; border-radius: 18px; }
	.pg-form { grid-template-columns: 1fr; gap: 16px; }
	.pg-parks, .pg-split, .pg-stats { grid-template-columns: 1fr; }
	.pg-band { padding: 30px 24px; border-radius: 24px; }
	.pg .pg-band h2 { font-size: 22px; }
	.pg-booking-main { grid-template-columns: 72px minmax(0, 1fr); }
	.pg-booking-actions { grid-column: 1 / -1; justify-content: flex-start; }
	.pg-booking-detail { grid-template-columns: 1fr; }
	.pg-activity { grid-template-columns: 1fr; }
	.pg-activity img { min-height: 0; aspect-ratio: 16 / 9; }
	.pg-activity-body { padding: 22px; }
	.pg-faq summary { min-height: 58px; padding: 12px 56px 12px 18px; font-size: 15px; }
	.pg-faq summary::after { right: 14px; }
	.pg-faq-body { padding: 0 18px 18px; }
	.pg-warn { padding: 20px 18px; }
	.pg-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pg-villager { padding: 18px; }
	.pg-call-text strong { font-size: 20px; }
	.pg-tab { min-height: 40px; padding: 0 15px; font-size: 13px; }
}
@media (max-width: 560px) {
	.pg-posts, .pg-chars, .pg-rule-cards, .pg-warn ul { grid-template-columns: 1fr; }
	.pg-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.pg-gallery a { border-radius: 16px; }
	.pg-friends { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pg-char-art { height: 180px; }
}

.pg-side > .pg-card + .pg-card, .pg-side > * + .pg-card { margin-top: 0; }

/* ------------------------------------------------------------------ loading skeletons */
@keyframes pg-shimmer { from { background-position: 150% 0; } to { background-position: -50% 0; } }
.pg-skel, .pg-post-media {
	background: linear-gradient(100deg, #E3EEF7 30%, #F3F8FC 50%, #E3EEF7 70%) 0 0 / 200% 100%;
	animation: pg-shimmer 1.3s linear infinite;
}
.pg-skel { display: block; border-radius: 8px; }
.pg-skel-media { aspect-ratio: 16 / 10; border-radius: 0; }
.pg-skel-line { height: 12px; width: 100%; }
.pg-skel-title { height: 18px; width: 100%; }
.pg-skel-card { pointer-events: none; }
.pg-skel-card .pg-post-card-body { gap: 10px; }
@media (prefers-reduced-motion: reduce) { .pg-skel, .pg-post-media { animation: none; } }

/* blog card image: shimmer until the photo has loaded */
.pg-post-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.pg-post-media img { width: 100%; height: 100%; aspect-ratio: auto; opacity: 0; transition: opacity .3s; }
.pg-post-media.is-loaded { animation: none; background: #DCEBF7; }
.pg-post-media.is-loaded img { opacity: 1; }
.pg-post-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--pg-text); font-size: 14px; line-height: 1.55; }

/* ------------------------------------------------------------------ pagination */
.pg-pages { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 36px; }
.pg-page-numbers { display: flex; align-items: center; gap: 6px; }
.pg-page {
	min-width: 42px; height: 42px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	border: 1.5px solid var(--pg-line); border-radius: 12px; background: #fff; color: var(--pg-ink) !important;
	font: 700 14px var(--pg-font); text-decoration: none !important; transition: border-color .15s, background .15s;
}
a.pg-page:hover { border-color: var(--pg-link); color: var(--pg-link) !important; }
.pg-page.is-current { border-color: var(--pg-navy); background: var(--pg-navy); color: #fff !important; }
.pg-page.is-disabled { opacity: .45; }
.pg-page-step { padding: 0 16px; }
.pg-page-gap { min-width: 20px; color: var(--pg-text); text-align: center; }
.pg-pages-count { margin-top: 12px !important; color: var(--pg-text); font-size: 13px; text-align: center; }
@media (max-width: 560px) {
	.pg-page-step { font-size: 0; gap: 0; padding: 0; min-width: 42px; }
	.pg-page { min-width: 38px; height: 38px; }
}
