/*
Theme Name: Literacy Impact
Theme URI: https://www.literacyimpact.com.au
Author: YSL Marketing
Author URI: https://yslconsulting.com.au
Description: Custom block theme for Literacy Impact™. Brand palette (teal, cream, navy), Playfair Display and Montserrat, and ready-made page layouts for every page on the site. Edit everything in the WordPress editor.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
License: Proprietary, built for Literacy Impact
Text Domain: literacy-impact
*/

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; }
em { font-style: italic; }
.li-italic-teal em, h1 em, h2 em { color: var(--wp--preset--color--teal-deep); }
.has-navy-background-color h2 em, .has-navy-background-color h1 em { color: var(--wp--preset--color--teal-light); }
img { height: auto; }
mark.li-todo { background: #FFF2A8; color: var(--wp--preset--color--navy); padding: 0 4px; }

/* ---------- Type roles (brand spec) ---------- */
.li-eyebrow { font-family: var(--wp--preset--font-family--montserrat); font-size: 0.75rem !important; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.5; color: var(--wp--preset--color--teal-deep); margin-bottom: 0 !important; }
.has-navy-background-color .li-eyebrow { color: var(--wp--preset--color--teal-light); }
.has-teal-background-color .li-eyebrow { color: var(--wp--preset--color--navy); }
.li-lead { font-family: var(--wp--preset--font-family--playfair); font-size: var(--wp--preset--font-size--lead); line-height: 1.2; color: var(--wp--preset--color--slate); }
.has-navy-background-color .li-lead { color: #E4E1D8; }
.has-teal-background-color .li-lead, .has-teal-background-color p { color: var(--wp--preset--color--navy); }
.li-brand { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.0625rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; margin: 0; }
.li-brand a { color: var(--wp--preset--color--navy); text-decoration: none; }
.li-small { font-size: 0.875rem; color: #5A607F; }
.has-navy-background-color .li-small { color: #B9BDD6; }
.li-textlink a, a.li-textlink { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--navy); text-underline-offset: 5px; }
.has-navy-background-color .li-textlink a { color: var(--wp--preset--color--teal-light); }
p { color: inherit; }
.li-body-muted p, p.li-muted { color: var(--wp--preset--color--slate); }

/* ---------- Sections ---------- */
.li-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.li-section > * + * { margin-block-start: 28px; }
.li-section.has-navy-background-color { color: var(--wp--preset--color--cream); }
.li-section.has-navy-background-color h2, .li-section.has-navy-background-color h3 { color: var(--wp--preset--color--cream); }
.li-intro-split { gap: 80px !important; align-items: end !important; }
.li-intro-split > .wp-block-column:last-child p { color: var(--wp--preset--color--slate); }
.has-navy-background-color .li-intro-split > .wp-block-column:last-child p { color: #E4E1D8; }

/* ---------- Hero ---------- */
.li-hero { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(56px, 6vw, 88px); }
.li-hero .wp-block-columns { gap: 72px; align-items: center; }
.li-hero-media { position: relative; }
.li-hero-media .wp-block-image img { width: 100%; aspect-ratio: 600 / 560; object-fit: cover; object-position: 30% center; border-radius: 2px; }
.li-hero-card { position: absolute; left: -56px; bottom: 40px; width: 300px; padding: 26px 28px 24px !important; background: var(--wp--preset--color--cream); border-top: 3px solid var(--wp--preset--color--teal); box-shadow: 0 18px 40px rgba(24, 31, 76, 0.12); }
.li-hero-card > * + * { margin-block-start: 10px !important; }
.li-hero .wp-block-buttons { margin-top: 36px; }
.li-page-hero { padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 88px); border-bottom: 1px solid #E2DCCC; }
.li-page-hero h1 { font-size: clamp(2.4rem, 4.6vw, 4.25rem); max-width: 18ch; }
.li-page-hero .li-lead { max-width: 760px; }
.li-page-hero .wp-block-image img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 2px; }

/* ---------- Stats ---------- */
.li-stats { gap: 48px !important; }
.li-stat { border-top: 1px solid rgba(246, 243, 236, 0.25); padding-top: 22px; }
.li-stat-num { font-family: var(--wp--preset--font-family--playfair); font-size: clamp(2.8rem, 4.5vw, 4rem); line-height: 1; margin: 0 0 12px !important; }
.has-navy-background-color .li-stat-num { color: var(--wp--preset--color--teal-light); }
.li-stat p:not(.li-stat-num) { font-size: 0.9375rem; color: #E4E1D8; }
.li-result-num { font-family: var(--wp--preset--font-family--playfair); font-size: clamp(2.4rem, 3.6vw, 3.25rem); line-height: 1; color: var(--wp--preset--color--teal-deep); margin: 0 !important; }
.li-hero-card .li-result-num { color: var(--wp--preset--color--navy); font-size: 2.75rem; }

/* ---------- Cards ---------- */
.li-cards { gap: 32px !important; }
.li-card { background: var(--wp--preset--color--white); padding: 40px 36px !important; border-radius: 2px; display: flex; flex-direction: column; }
.li-card > * + * { margin-block-start: 16px !important; }
.li-card .li-card-foot { margin-top: auto !important; padding-top: 12px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.li-card h3 { font-size: clamp(1.4rem, 2vw, 1.7rem); }
.li-card-question p.li-question { font-family: var(--wp--preset--font-family--playfair); font-size: 1.5625rem; line-height: 1.2; }
.li-bg-cream-cards .li-card { background: var(--wp--preset--color--cream); }
.li-gaps { gap: 32px !important; }
.li-gap { border-top: 2px solid var(--wp--preset--color--teal); padding-top: 28px; }
.li-gap h3 { font-size: 1.6875rem; }
.li-gap p { font-size: 0.9375rem; color: var(--wp--preset--color--slate); }
.li-gap::before { content: ""; display: block; width: 72px; height: 44px; margin-bottom: 16px; background: url("assets/images/iceberg.svg") no-repeat left center / contain; }
.li-signature { font-family: var(--wp--preset--font-family--playfair); font-size: clamp(1.4rem, 2.2vw, 1.875rem); line-height: 1.2; max-width: 1000px; }

/* ---------- Pathways ---------- */
.li-pathways { gap: 28px !important; align-items: stretch !important; }
.li-pathways > .wp-block-column { background: var(--wp--preset--color--cream); padding: 40px 34px !important; border-radius: 2px; display: flex; flex-direction: column; }
.li-pathways > .wp-block-column > * + * { margin-block-start: 16px !important; }
.li-pathways > .wp-block-column:last-child { flex-grow: 1.25 !important; background: var(--wp--preset--color--navy); color: var(--wp--preset--color--cream); }
.li-pathways > .wp-block-column:last-child h3 { color: var(--wp--preset--color--cream); font-size: 2.125rem; }
.li-pathways > .wp-block-column:last-child .li-eyebrow { display: inline-block; align-self: flex-start; padding: 7px 12px; background: var(--wp--preset--color--teal); color: var(--wp--preset--color--navy); font-size: 0.6875rem !important; border-radius: 2px; }
.li-pathways > .wp-block-column:last-child .li-pathway-quote { color: #D8E9EB; }
.li-pathways > .wp-block-column:last-child .li-small { color: #B9BDD6; }
.li-pathways > .wp-block-column:last-child .li-textlink a { color: var(--wp--preset--color--teal-light); }
.li-pathways > .wp-block-column:last-child p { color: #E4E1D8; }
.li-pathways h3 { font-size: 1.875rem; line-height: 1.06; }
.li-pathway-quote { font-family: var(--wp--preset--font-family--playfair); font-style: italic; font-size: 1.1875rem; line-height: 1.2; color: var(--wp--preset--color--slate); }
.li-pathways .li-pathway-price { margin-top: auto !important; padding-top: 12px; }

/* ---------- Split image sections ---------- */
.li-split { gap: 0 !important; }
.li-split > .wp-block-column:first-child .wp-block-image, .li-split > .wp-block-column:first-child .wp-block-image img { height: 100%; }
.li-split > .wp-block-column:first-child .wp-block-image img { width: 100%; min-height: 560px; object-fit: cover; display: block; }
.li-split > .wp-block-column:last-child { padding: clamp(48px, 7vw, 96px) clamp(24px, 5.5vw, 80px) !important; }
.li-split > .wp-block-column:last-child > * + * { margin-block-start: 24px; }

/* ---------- Lists ---------- */
.li-list { list-style: none; padding-left: 0; }
.li-list li { position: relative; padding-left: 22px; margin-bottom: 12px; }
.li-list li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--teal); }
.li-list-2col { columns: 2; column-gap: 48px; }
.li-list-2col li { break-inside: avoid; }

/* ---------- Proof strip ---------- */
.li-proof-strip { display: flex; flex-wrap: wrap; column-gap: 36px; row-gap: 14px; padding: 28px 0; border-top: 1px solid #E2DCCC; border-bottom: 1px solid #E2DCCC; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #5A607F; }

/* ---------- Chips ---------- */
.li-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; }
.li-chips li { padding: 10px 16px; border: 1px solid #C9DCDF; border-radius: 2px; font-size: 0.8125rem; margin: 0; }
.li-chips li::before { display: none; }

/* ---------- Julie ---------- */
.li-julie .wp-block-columns { gap: 96px; align-items: center; }
.li-julie .wp-block-image img { width: 100%; aspect-ratio: 500 / 580; object-fit: cover; object-position: center 30%; border-radius: 2px; }

/* ---------- Quotes ---------- */
.wp-block-quote p { font-family: var(--wp--preset--font-family--playfair); font-size: 1.375rem; line-height: 1.3; }
.wp-block-quote cite { font-family: var(--wp--preset--font-family--montserrat); font-style: normal; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #5A607F; }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--navy); border: 1.5px solid var(--wp--preset--color--navy); padding: 17px 28px; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--cream); }
.has-navy-background-color .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--cream); border-color: var(--wp--preset--color--cream); }

/* ---------- CTA band ---------- */
.li-cta-band .wp-block-columns { align-items: center; gap: 80px; }
.li-cta-band .wp-block-buttons { flex-direction: column; align-items: stretch; }
.li-cta-band .wp-block-button__link { width: 100%; text-align: center; }

/* ---------- Header ---------- */
.li-announce { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--cream); font-size: 0.8125rem; text-align: center; padding-top: 12px; padding-bottom: 12px; margin: 0; }
.li-announce a { color: var(--wp--preset--color--teal-light); font-weight: 600; text-underline-offset: 3px; margin-left: 10px; }
.li-header { border-bottom: 1px solid #E2DCCC; padding-top: 22px; padding-bottom: 22px; }
.li-header .wp-block-navigation { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; gap: 26px; }
.li-header .wp-block-navigation a { color: var(--wp--preset--color--navy); text-decoration: none; }
.li-header .wp-block-navigation a:hover, .li-header .current-menu-item > a { color: var(--wp--preset--color--teal-deep); }
.li-header .wp-block-button__link { padding: 14px 20px; font-size: 0.75rem; letter-spacing: 0.12em; }
.li-header-right { gap: 28px !important; }

/* ---------- Footer ---------- */
.li-footer { background: var(--wp--preset--color--navy); color: #E4E1D8; padding-top: 88px; padding-bottom: 48px; }
.li-footer h2, .li-footer h3 { color: var(--wp--preset--color--cream); }
.li-footer a { color: #E4E1D8; text-decoration: none; }
.li-footer a:hover { color: var(--wp--preset--color--teal-light); }
.li-footer .li-eyebrow, .li-footer .li-brand { color: var(--wp--preset--color--teal-light); }
.li-footer-cols { gap: 64px !important; }
.li-footer-links { list-style: none; padding: 0; margin: 0; }
.li-footer-links li { margin-bottom: 12px; }
.li-footer-base { border-top: 1px solid rgba(246, 243, 236, 0.18); padding-top: 32px; margin-top: 56px !important; font-size: 0.8125rem; color: #B9BDD6; gap: 48px !important; }
.li-footer input[type="email"], .li-footer input[type="text"] { background: transparent; border: 1px solid rgba(246, 243, 236, 0.35); color: var(--wp--preset--color--cream); padding: 14px 16px; border-radius: 2px; font-family: inherit; }
.li-footer .gform_button, .li-footer button[type="submit"] { background: var(--wp--preset--color--teal) !important; color: var(--wp--preset--color--navy) !important; border: 0; border-radius: 2px; padding: 16px 24px; font-family: inherit; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8125rem; }

/* ---------- Forms (Gravity Forms) ---------- */
.gform_wrapper input[type="text"], .gform_wrapper input[type="email"], .gform_wrapper input[type="tel"], .gform_wrapper textarea, .gform_wrapper select { border: 1px solid #C9C2B0 !important; border-radius: 2px !important; padding: 12px 14px !important; font-family: inherit !important; background: #fff !important; }
.gform_wrapper .gform_button { background: var(--wp--preset--color--navy) !important; color: var(--wp--preset--color--cream) !important; border: 0 !important; border-radius: 2px !important; padding: 18px 30px !important; font-weight: 600 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; font-size: 0.8125rem !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .li-header .wp-block-navigation { gap: 18px; }
}
@media (max-width: 781px) {
  .li-hero-card { position: relative; left: auto; bottom: auto; width: auto; margin: -40px 16px 0 !important; }
  .li-hero .wp-block-columns, .li-julie .wp-block-columns, .li-intro-split, .li-cta-band .wp-block-columns { gap: 32px !important; }
  .li-list-2col { columns: 1; }
  .li-split > .wp-block-column:first-child .wp-block-image img { min-height: 300px; }
  .li-footer-cols { gap: 40px !important; }
  .li-announce { padding-left: 20px; padding-right: 20px; }
  .li-header-right .wp-block-buttons { display: none; }
}

/* ---------- Layout fixes: sections sit flush, header padding ---------- */
.wp-block-post-content > .alignfull, main.wp-block-group > .wp-block-post-content, .wp-site-blocks > footer, .wp-site-blocks > div:has(> .li-footer) { margin-block-start: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.li-header, .li-announce { padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); }
.li-announce p { margin: 0; }
.li-signature { margin-left: 0 !important; }
.li-cta-band .li-cta-col { flex: 0 0 440px !important; }
@media (max-width: 781px) { .li-cta-band .li-cta-col { flex-basis: auto !important; } }

/* ---------- Header fit and page hero alignment ---------- */
.li-brand { white-space: nowrap; }
.li-header .wp-block-navigation { gap: 22px; font-size: 0.71875rem; }
.li-header .wp-block-navigation-item__content { white-space: nowrap; }
.li-header-right { gap: 24px !important; flex-shrink: 1; }
.li-header .wp-block-button__link { white-space: nowrap; }
@media (max-width: 1280px) { .li-header .wp-block-navigation { gap: 16px; font-size: 0.6875rem; letter-spacing: 0.08em; } }
.li-page-hero h1 { max-width: none; text-wrap: balance; }
.li-page-hero > .li-lead { max-width: 760px; margin-left: max(0px, calc((100% - 1280px) / 2)) !important; }
.li-header .wp-block-navigation, .li-header .wp-block-navigation__container { gap: 18px; letter-spacing: 0.1em; }
@media (min-width: 1200px) { .li-header .wp-block-navigation__container { flex-wrap: nowrap; } }
.li-header .wp-block-navigation, .li-header .wp-block-navigation__container { gap: 16px; }
