/* Hilton theme: the parts theme.json can't express. */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

:focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 3px; }

img { height: auto; }
:where(.wp-block-image:not(.is-style-cutout)) img,
:where(.wp-block-media-text) .wp-block-media-text__media img,
:where(.wp-block-gallery) img,
:where(.wp-block-post-featured-image) img { border-radius: 16px; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---- Header ---------------------------------------------------------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	transition: box-shadow 0.2s;
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header.is-scrolled { box-shadow: 0 1px 0 #e1e6e2, 0 8px 24px -16px rgba(23, 32, 28, 0.35); }
.site-header__bar { gap: 1.5rem; }
.site-header__right { gap: clamp(0.75rem, 2vw, 1.75rem); }
.hilton-logo { display: block; line-height: 0; }
.hilton-logo img { display: block; width: clamp(104px, 11vw, 132px); height: auto; }

.site-nav .wp-block-navigation-item__content { padding: 0.5rem 0.2rem; text-decoration: none; color: var(--wp--preset--color--ink); }
.site-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--red); }
.site-nav .current-menu-item > .wp-block-navigation-item__content,
.site-nav .current-menu-ancestor > .wp-block-navigation-item__content { box-shadow: inset 0 -3px 0 var(--wp--preset--color--red); }
.site-nav .wp-block-navigation__submenu-container { border: 0 !important; border-radius: 14px; padding: 0.5rem !important; box-shadow: 0 12px 32px -12px rgba(23, 32, 28, 0.35); min-width: 15rem !important; }
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 0.8rem; border-radius: 8px; }
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--ink); }
.site-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.4rem; font-weight: 800; text-transform: uppercase; }

@media (max-width: 900px) {
	.site-header .hc-status { font-size: 0.78rem; padding: 0.4em 0.75em 0.4em 0.65em; }
}
@media (max-width: 420px) {
	.site-header .hc-status__text { max-width: 9.5rem; overflow: hidden; text-overflow: ellipsis; }
}

/* ---- Page heads ------------------------------------------------------ */

.page-head { padding-top: clamp(2.5rem, 7vw, 5.5rem); padding-bottom: clamp(1.5rem, 4vw, 2.5rem); }
.page-head h1, .page-head .wp-block-post-title { margin: 0; overflow-wrap: anywhere; hyphens: auto; }
.page-head__lead { font-size: var(--wp--preset--font-size--large); max-width: 40ch; margin-top: 1.25rem; color: var(--wp--preset--color--ink-soft); }
.page-head--post .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); line-height: 1; }
.page-head--post .post-date { color: var(--wp--preset--color--ink-soft); font-weight: 700; margin-bottom: 0.75rem; }
.page-feature { margin-bottom: var(--wp--preset--spacing--40); }
.page-content { padding-bottom: var(--wp--preset--spacing--50); }
.site-main--wide { padding-bottom: 0; }

/* Body copy rhythm */
.wp-block-post-content p, .wp-block-post-content li { max-width: 68ch; }
.wp-block-post-content :where(h2) { margin-top: 1.6em; }
.wp-block-post-content :where(h3) { margin-top: 1.4em; }

/* ---- Buttons --------------------------------------------------------- */

.wp-block-button__link { transition: background-color 0.15s, color 0.15s, box-shadow 0.15s; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--ink); box-shadow: inset 0 0 0 2px currentColor; border: 0; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }
.wp-block-button.is-style-on-dark > .wp-block-button__link { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.85); }
.wp-block-button.is-style-on-dark > .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--ink); }

/* ---- Homepage hero --------------------------------------------------- */

.hero { min-height: min(88vh, 860px) !important; align-items: flex-end !important; }
.hero .wp-block-cover__image-background { object-position: 30% 40%; }
.hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(10, 14, 12, 0.05) 0%, rgba(10, 14, 12, 0.35) 45%, rgba(10, 14, 12, 0.88) 100%) !important; opacity: 1 !important; }
.hero .wp-block-cover__inner-container { padding-bottom: clamp(1.5rem, 5vw, 3.5rem); }
.hero h1 { color: #fff; font-size: clamp(3.2rem, 10.5vw, 8.75rem); line-height: 0.86; letter-spacing: -0.02em; margin: 0; max-width: 9.5em; }
.hero__lead { color: rgba(255, 255, 255, 0.92); font-size: var(--wp--preset--font-size--large); max-width: 34ch; margin-top: 1.25rem !important; }
.hero__cols { align-items: flex-end !important; }
.hero__cols > .wp-block-column:last-child { display: flex; justify-content: flex-end; }
@media (max-width: 781px) { .hero__cols > .wp-block-column:last-child { justify-content: flex-start; } }

/* ---- Sections -------------------------------------------------------- */

.section { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.section--mist { background: var(--wp--preset--color--mist); }
.section h2 { margin-top: 0; }
.section__intro { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--ink-soft); max-width: 46ch; }

/* Three short statements under the hero */
.pillars { counter-reset: none; }
.pillars .wp-block-column { border-top: 3px solid var(--wp--preset--color--ink); padding-top: 1rem; }
.pillars h3 { font-size: 1.5rem; text-transform: uppercase; font-weight: 800; margin: 0 0 0.4rem; }
.pillars p { color: var(--wp--preset--color--ink-soft); margin: 0; }

/* Feature with photo */
.feature .wp-block-media-text__content { padding-left: clamp(0px, 4vw, 4rem) !important; padding-right: clamp(0px, 2vw, 2rem) !important; }
.feature.has-media-on-the-right .wp-block-media-text__content { padding-left: 0 !important; padding-right: clamp(0px, 4vw, 4rem) !important; }
@media (max-width: 600px) { .feature .wp-block-media-text__content { padding: 1.5rem 0 0 !important; } }
.feature h2 { margin-top: 0; margin-bottom: 0.4em; }
.feature .hc-week--list { margin: 1rem 0; }
.kicker { font-family: var(--wp--preset--font-family--display); font-weight: 700; color: var(--wp--preset--color--red); margin-bottom: 0.25rem !important; }
.has-green-deep-background-color .kicker, .has-ink-background-color .kicker { color: #b9e38c; }

/* Big facts (junior page) */
.facts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 2rem 2.5rem; }
.facts > * { margin: 0 !important; }
.fact h3 { font-size: 1.35rem; text-transform: uppercase; font-weight: 800; margin: 0 0 0.35rem; }
.fact p { margin: 0; color: var(--wp--preset--color--ink-soft); }
.has-green-deep-background-color .fact p, .has-ink-background-color .fact p { color: rgba(255, 255, 255, 0.82); }

/* Grey panel style */
.is-style-panel { background: var(--wp--preset--color--mist); border-radius: 20px; padding: clamp(1.25rem, 3vw, 2rem); }

/* Tick lists */
.is-style-ticks { list-style: none; padding-left: 0; }
.is-style-ticks li { position: relative; padding-left: 1.9rem; margin-bottom: 0.45rem; }
.is-style-ticks li::before { content: ""; position: absolute; left: 0.1rem; top: 0.45em; width: 0.55rem; height: 0.95rem; border: solid var(--wp--preset--color--lime); border-width: 0 3px 3px 0; transform: rotate(45deg); }

/* FAQ */
.wp-block-details summary { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.2rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-weight: 600; color: var(--wp--preset--color--red); }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details > :not(summary) { margin-top: 0.6rem; color: var(--wp--preset--color--ink-soft); }

/* Prices (junior membership etc.) */
.price { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(2.6rem, 6vw, 3.75rem); line-height: 1; color: var(--wp--preset--color--red); margin: 0 !important; }
.price small { font-size: 0.35em; font-weight: 700; color: var(--wp--preset--color--ink-soft); margin-left: 0.2em; }

/* News */
.news-list__date { color: var(--wp--preset--color--ink-soft); margin-top: 0.8rem !important; }
.news-list__title { font-size: 1.35rem !important; text-transform: none !important; line-height: 1.15 !important; margin-top: 0.25rem !important; }
.news-list__title a { text-decoration: none; color: inherit; }
.news-list__title a:hover { color: var(--wp--preset--color--red); }
.post-nav { padding-bottom: var(--wp--preset--spacing--50); }

/* Contact form plugins inherit the look */
.forminator-ui input, .forminator-ui textarea, .forminator-ui select, .wpcf7 input:not([type=submit]), .wpcf7 textarea, .mc4wp-form input[type=email], .mc4wp-form input[type=text] {
	font-family: var(--wp--preset--font-family--body) !important; font-size: 1rem !important; border-radius: 10px !important; border: 1px solid #c9d0cb !important; padding: 0.75rem 0.9rem !important; background: #fff !important; width: 100%; box-sizing: border-box;
}
.mc4wp-form input[type=submit], .forminator-ui .forminator-button-submit, .wpcf7 input[type=submit] {
	font-family: var(--wp--preset--font-family--display) !important; font-weight: 700 !important; background: var(--wp--preset--color--red) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 0.85rem 1.6rem !important; cursor: pointer;
}

/* ---- Footer ---------------------------------------------------------- */

.site-footer a { color: #fff; text-decoration-color: rgba(255, 255, 255, 0.4); text-underline-offset: 3px; }
.site-footer a:hover { color: #fff; text-decoration-color: var(--wp--preset--color--lime); }
.site-footer__h { font-size: 1.05rem !important; text-transform: none !important; font-weight: 700 !important; color: #b9e38c !important; margin: 0 0 0.75rem !important; letter-spacing: 0 !important; }
.site-footer__h:not(:first-child) { margin-top: 1.75rem !important; }
.site-footer .hc-contact__blurb { color: rgba(255, 255, 255, 0.82); margin-top: 1.25rem; }
.site-footer .hc-fee { border-color: rgba(255, 255, 255, 0.14); padding: 0.45rem 0; }
.site-footer .hc-fee__price { color: #fff; font-size: 1.3rem; }
.site-footer .hc-fees__note { color: rgba(255, 255, 255, 0.7); font-size: 0.88rem; }
.site-footer .hc-week--list .hc-sess__who { opacity: 0.7; }
.site-footer .hc-week--list .hc-day.is-today .hc-day__name { text-decoration-color: var(--wp--preset--color--lime); }
.site-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.3rem; }
.site-footer__base { margin-top: var(--wp--preset--spacing--40) !important; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 0.88rem; color: rgba(255, 255, 255, 0.7); }
.site-footer__base p { margin: 0; }

/* Document download lists */
.is-style-documents { list-style: none; padding: 0; display: grid; gap: 0.5rem; }
.is-style-documents li { margin: 0; }
.is-style-documents a { display: flex; align-items: center; gap: 0.75rem; padding: 0.8rem 1rem; border-radius: 12px; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--ink); text-decoration: none; font-weight: 700; }
.is-style-documents a::before { content: "PDF"; flex: 0 0 auto; font-family: var(--wp--preset--font-family--display); font-size: 0.7rem; font-weight: 700; color: #fff; background: var(--wp--preset--color--red); border-radius: 5px; padding: 0.3em 0.45em; }
.is-style-documents a:hover { background: #e6ebe7; }

.section--tight { padding-top: 0; }
.section--top0 { padding-top: 0; }
.section--mist + .section--mist { padding-top: 0; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 12px; }

/* Cover content spans the full width so wide content lines up with the header. */
.wp-block-cover.hero { padding-left: var(--wp--style--root--padding-left, 1.25rem) !important; padding-right: var(--wp--style--root--padding-right, 1.25rem) !important; }
.wp-block-cover.hero.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--wide-size, 1240px); margin-left: auto; margin-right: auto; }
.wp-block-cover.hero .wp-block-cover__inner-container > * { max-width: none; margin-left: 0; margin-right: 0; }
.wp-block-cover.hero .wp-block-cover__inner-container > h1 { max-width: 9.5em; }

/* Short-measure text inside wide sections: keep it narrow but on the same left edge. */
.section > .section__intro,
.section > .page-head__lead { max-width: 46ch !important; margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }

.site-footer .hc-week--list .hc-sess--juniors .hc-sess__who { color: #b9e38c; opacity: 1; }

.site-footer .hc-week--list .hc-day.is-today .hc-day__name { text-decoration: none; color: #b9e38c; }
.site-footer .hc-day.is-today .hc-day__name::after { color: #b9e38c; opacity: .8; }
.site-footer .hc-day.is-today::before { display: none; }

/* Headings on the dark green / ink sections */
:is(.has-green-deep-background-color, .has-green-background-color, .has-ink-background-color) :is(h1, h2, h3, h4) { color: #fff; }
:is(.has-green-deep-background-color, .has-ink-background-color) .fact h3 { color: #b9e38c; }
.price-list .price + .price, .prices p + .price { margin-top: 1.25rem; }
.page-head .page-feature { margin-top: clamp(1.5rem, 4vw, 2.5rem); margin-bottom: 0; }
.page-content:has(> .section:last-child) { padding-bottom: 0; }
