/*
Theme Name: Level Up Academics
Theme URI: https://levelupacademics.com/
Author: Level Up Academics
Description: A spacious, family-friendly block theme for Level Up Academics. Built for Gutenberg with reusable patterns, custom templates, global site settings, and inquiry forms.
Version: 1.4.0
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.0
Text Domain: level-up-academics
Tags: education, block-patterns, full-site-editing, custom-colors, custom-logo, one-column, two-columns
*/

:root {
  --lua-navy: #113c88;
  --lua-blue: #2f8ff4;
  --lua-teal: #1fb8bb;
  --lua-mint: #72d6aa;
  --lua-yellow: #ffc34d;
  --lua-cream: #fff8eb;
  --lua-sky: #eef8ff;
  --lua-ink: #17365f;
  --lua-muted: #5d789e;
  --lua-border: #dfeaf5;
  --lua-white: #ffffff;
  --lua-shadow: 0 18px 50px rgba(17, 60, 136, .09);
  --lua-radius-xl: 38px;
  --lua-radius-lg: 24px;
  --lua-radius-md: 16px;
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
a { text-underline-offset: .18em; }

/* Header */
.lua-site-header { position: relative; z-index: 20; background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(17,60,136,.06); }
.lua-site-header > .wp-block-group { min-height: 96px; }
.lua-brand-link { display:flex; align-items:center; gap:14px; color:var(--lua-navy); text-decoration:none; min-width:250px; }
.lua-brand-mark { width:58px; height:54px; flex:0 0 auto; }
.lua-brand-text { line-height:1; }
.lua-brand-text strong { display:block; font-size:2rem; font-weight:800; letter-spacing:-.045em; }
.lua-brand-text strong span { color:var(--lua-teal); }
.lua-brand-text small { display:block; margin-top:7px; font-size:.74rem; letter-spacing:.35em; font-weight:700; }
.lua-site-header .wp-block-navigation { font-weight:700; font-size:.95rem; }
.lua-site-header .wp-block-navigation-item__content { color:var(--lua-navy); text-decoration:none; }
.lua-site-header .wp-block-navigation-item__content:hover { color:var(--lua-teal); }
.lua-header-cta .wp-block-button__link, .lua-primary-button .wp-block-button__link {
  background: linear-gradient(110deg,var(--lua-blue),var(--lua-teal));
  color:#fff; border:0; border-radius:999px; box-shadow:none; font-weight:800; padding:15px 31px;
}
.lua-secondary-button .wp-block-button__link { background:#fff; color:var(--lua-blue); border:2px solid var(--lua-blue); border-radius:999px; font-weight:800; padding:13px 30px; }

/* Layout */
.lua-section { padding:96px 28px; }
.lua-section-tight { padding:68px 28px; }
.lua-section-title { color:var(--lua-navy); font-weight:800; letter-spacing:-.035em; margin-bottom:10px; }
.lua-section-kicker { color:var(--lua-blue); font-size:.78rem; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
.lua-section-lead { color:var(--lua-muted); font-size:1.07rem; }

/* Hero */
.lua-hero { position:relative; padding:116px 28px 112px; background:#fff; }
.lua-hero::before { content:""; position:absolute; left:-80px; top:65px; width:170px; height:100px; background:#eaf7ff; border-radius:50%; transform:rotate(-18deg); opacity:.9; }
.lua-hero-grid { gap:64px; align-items:center; }
.lua-hero-copy { max-width:680px; }
.lua-hero h1 { margin:.4rem 0 1.2rem; color:var(--lua-navy); font-size:clamp(3rem,5.2vw,5.55rem); line-height:.94; letter-spacing:-.055em; font-weight:800; }
.lua-hero h1 .lua-accent { color:var(--lua-teal); }
.lua-hero-copy > p:not(.lua-section-kicker):not(.lua-microline) { color:#42658f; font-size:1.16rem; line-height:1.58; }
.lua-hero .wp-block-buttons { margin-top:28px; gap:14px; }
.lua-microline { margin-top:26px; color:#6888ae; font-size:.77rem; letter-spacing:.18em; text-transform:uppercase; font-weight:800; }
.lua-hero-media { position:relative; }
.lua-hero-media figure { margin:0; border-radius:44px 44px 44px 78px; overflow:hidden; box-shadow:var(--lua-shadow); }
.lua-hero-media img { width:100%; min-height:390px; object-fit:cover; display:block; }
.lua-sticky-note { position:absolute; right:-26px; top:26px; z-index:3; width:176px; padding:22px 18px; background:#fff3a8; color:#15529b; font-family:"Comic Sans MS","Bradley Hand",cursive; font-size:1.28rem; line-height:1.13; transform:rotate(-7deg); box-shadow:0 12px 26px rgba(17,60,136,.15); }
.lua-sun-rays { position:absolute; left:-34px; top:36px; color:var(--lua-yellow); font-size:2rem; transform:rotate(-12deg); }

/* Benefits */
.lua-benefit-strip { margin:0 0 10px; padding:28px; background:linear-gradient(90deg,#eef9ff,#f3fffb,#eef9ff); border-radius:38px; }
.lua-benefit-item { display:grid; grid-template-columns:72px 1fr; gap:18px; align-items:center; padding:8px 20px; }
.lua-benefit-item + .lua-benefit-item { border-left:1px solid #cfe3f2; }
.lua-icon-circle { width:68px; height:68px; border-radius:50%; display:grid; place-items:center; font-size:2rem; font-weight:700; }
.lua-icon-yellow { background:#fff4cf; color:#e8a811; }
.lua-icon-mint { background:#dff8ec; color:#1ab271; }
.lua-icon-blue { background:#dff4ff; color:#268ddf; }
.lua-benefit-item h3 { color:var(--lua-navy); font-size:1.12rem; margin:0 0 4px; }
.lua-benefit-item p { color:var(--lua-muted); margin:0; line-height:1.4; }

/* Steps */
.lua-how { padding:86px 28px 92px; background:#fff; }
.lua-steps { margin-top:45px; gap:40px; }
.lua-step { position:relative; }
.lua-step-number { width:78px; height:78px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; background:#e4f2ff; color:var(--lua-navy); font-weight:800; font-size:1.8rem; }
.lua-step h3 { color:var(--lua-navy); font-size:1.06rem; margin:0 0 8px; }
.lua-step p { color:var(--lua-muted); font-size:.96rem; line-height:1.5; margin:0; }
.lua-step-arrow { position:absolute; right:-28px; top:27px; color:#99c6ff; font-size:2rem; }

/* Specialized */
.lua-specialized { padding:105px 28px 112px; background:linear-gradient(180deg,#fffaf0,#fff8ea); border-radius:42px; }
.lua-support-grid { margin-top:44px; gap:18px; }
.lua-support-card { height:100%; padding:30px 30px 31px; border:1px solid #f3ead4; border-radius:20px; background:#fff; box-shadow:0 8px 24px rgba(17,60,136,.035); }
.lua-support-card .lua-icon-circle { width:74px; height:74px; margin-bottom:18px; }
.lua-support-card h3 { color:var(--lua-navy); margin:0 0 8px; font-size:1.2rem; }
.lua-support-card p { color:var(--lua-muted); margin:0; line-height:1.52; }

/* Founder */
.lua-founder { padding:82px 28px; }
.lua-founder-card { padding:30px; border:1px solid var(--lua-border); border-radius:24px; background:#fff; box-shadow:0 12px 36px rgba(17,60,136,.05); }
.lua-founder-card figure { margin:0; border-radius:18px; overflow:hidden; }
.lua-founder-card img { width:100%; aspect-ratio: 7 / 4; object-fit:cover; object-position:center top; }
.lua-founder h2 { color:var(--lua-navy); font-size:1.55rem; margin:0 0 10px; }
.lua-founder blockquote { margin:0; color:#4f6f97; border:0; padding:0; font-size:1.02rem; line-height:1.62; }
.lua-founder-signature { margin-top:16px; color:var(--lua-navy); font-weight:800; }
.lua-founder-side { border-left:1px solid #dce9f4; padding-left:30px; color:#6f89aa; font-style:italic; }

/* CTA */
.lua-cta { position:relative; overflow:hidden; padding:82px 28px; background:linear-gradient(110deg,#eff9ff,#effff9); border-radius:42px 42px 0 0; }
.lua-cta h2 { color:var(--lua-navy); font-size:clamp(2.35rem,4vw,4.25rem); letter-spacing:-.04em; margin:0 0 10px; }
.lua-cta p { color:var(--lua-muted); font-size:1.08rem; }

/* Generic pages */
.lua-page-hero { padding:100px 28px 86px; background:linear-gradient(180deg,#fff,#f5fbff); }
.lua-page-hero h1 { color:var(--lua-navy); font-size:clamp(3rem,5vw,5.2rem); line-height:.98; letter-spacing:-.05em; margin:.35rem 0 1rem; }
.lua-card-grid { gap:22px; }
.lua-card { padding:34px; border-radius:22px; background:#fff; border:1px solid var(--lua-border); box-shadow:0 10px 32px rgba(17,60,136,.05); height:100%; }
.lua-card h3 { color:var(--lua-navy); }
.lua-card p { color:var(--lua-muted); }
.lua-faq-item { padding:25px 0; border-bottom:1px solid var(--lua-border); }
.lua-faq-item h3 { color:var(--lua-navy); margin-bottom:8px; }
.lua-faq-item p { color:var(--lua-muted); }

/* Forms */
.lua-form { display:grid; gap:18px; max-width:820px; }
.lua-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.lua-form label { display:block; color:var(--lua-navy); font-weight:800; font-size:.94rem; }
.lua-form input, .lua-form textarea, .lua-form select { width:100%; margin-top:8px; box-sizing:border-box; border:1px solid #cbdceb; border-radius:14px; background:#fff; color:#23466f; padding:14px 15px; font:inherit; }
.lua-form textarea { min-height:140px; resize:vertical; }
.lua-form button { justify-self:start; border:0; border-radius:999px; background:linear-gradient(110deg,var(--lua-blue),var(--lua-teal)); color:#fff; font-weight:800; padding:15px 28px; cursor:pointer; }
.lua-form-note { color:var(--lua-muted); font-size:.88rem; }
.lua-form-alert { padding:14px 17px; border-radius:12px; background:#eafaf2; color:#167652; font-weight:700; margin-bottom:20px; }

/* Footer */
.lua-footer { padding:60px 28px 34px; background:#0f3b82; color:#fff; }
.lua-footer a { color:#fff; }
.lua-footer .lua-brand-link { color:#fff; }
.lua-footer .lua-brand-text strong { color:#fff; }
.lua-footer .lua-brand-text strong span { color:#73e2d4; }
.lua-footer-meta { color:#c9ddf8; font-size:.88rem; }

@media (max-width: 980px) {
  .lua-site-header .wp-block-navigation { display:none; }
  .lua-site-header > .wp-block-group { min-height:84px; }
  .lua-hero { padding-top:80px; padding-bottom:88px; }
  .lua-hero-grid { gap:42px; }
  .lua-benefit-item + .lua-benefit-item { border-left:0; border-top:1px solid #cfe3f2; padding-top:22px; margin-top:14px; }
  .lua-step-arrow { display:none; }
  .lua-founder-side { border-left:0; padding-left:0; border-top:1px solid #dce9f4; padding-top:24px; }
}

@media (max-width: 700px) {
  .lua-site-header { padding:0 16px; }
  .lua-brand-link { min-width:auto; }
  .lua-brand-mark { width:44px; }
  .lua-brand-text strong { font-size:1.55rem; }
  .lua-brand-text small { font-size:.57rem; }
  .lua-header-cta .wp-block-button__link { padding:12px 18px; font-size:.85rem; }
  .lua-section, .lua-section-tight, .lua-how, .lua-specialized, .lua-founder, .lua-cta, .lua-page-hero { padding-left:20px; padding-right:20px; }
  .lua-hero { padding:72px 20px 82px; }
  .lua-hero h1 { font-size:3.1rem; }
  .lua-sticky-note { right:8px; top:12px; width:145px; font-size:1.05rem; }
  .lua-form-grid { grid-template-columns:1fr; }
}


/* Sitewide Calendly booking section — v1.1 */
.lua-booking-wrap { padding: 88px 28px 92px; background:#fff; }
.lua-booking-section { max-width:1240px; margin:0 auto; overflow:hidden; padding:42px; background:linear-gradient(115deg,#eef8ff 0%,#f2fffb 52%,#fff8e8 100%); border:1px solid #deedf7; border-radius:38px; box-shadow:0 16px 48px rgba(17,60,136,.06); }
.lua-booking-grid { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(520px,1.35fr); gap:38px; align-items:center; }
.lua-booking-copy h2 { color:var(--lua-navy); font-size:clamp(2rem,3.4vw,3.45rem); line-height:1.02; letter-spacing:-.045em; margin:.45rem 0 1rem; }
.lua-booking-copy > p { color:var(--lua-muted); font-size:1.04rem; line-height:1.62; }
.lua-niki-card { display:grid; grid-template-columns:108px 1fr; gap:18px; align-items:center; margin:24px 0 20px; padding:14px; border-radius:20px; background:rgba(255,255,255,.74); border:1px solid rgba(255,255,255,.9); }
.lua-niki-photo { width:108px; height:108px; border-radius:18px; object-fit:cover; object-position:center 18%; display:block; box-shadow:0 8px 22px rgba(17,60,136,.10); }
.lua-niki-card strong { color:var(--lua-navy); display:block; font-size:1.08rem; }
.lua-niki-card span { color:#6784a8; display:block; margin-top:4px; font-size:.92rem; }
.lua-booking-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.lua-booking-button { display:inline-block; padding:14px 25px; border-radius:999px; background:linear-gradient(110deg,var(--lua-blue),var(--lua-teal)); color:#fff; text-decoration:none; font-weight:800; }
.lua-booking-link { color:var(--lua-navy); font-weight:800; text-decoration:none; }
.lua-booking-calendar { min-width:0; background:#fff; border-radius:24px; overflow:hidden; border:1px solid #dceaf5; box-shadow:0 10px 30px rgba(17,60,136,.07); }
.lua-booking-calendar .calendly-inline-widget { min-width:320px; height:690px; }
.lua-booking-note { margin-top:12px; color:#7890ad; font-size:.82rem; }
.lua-book-page-intro { padding-bottom:42px; }
.lua-book-page-points { margin-top:30px; gap:18px; }
.lua-book-page-points .lua-card { padding:26px; }
.lua-book-session-button .wp-block-button__link { background:#fff; color:var(--lua-blue); border:2px solid var(--lua-blue); border-radius:999px; font-weight:800; padding:13px 25px; }

@media (max-width: 1100px) {
  .lua-booking-grid { grid-template-columns:1fr; }
  .lua-booking-calendar .calendly-inline-widget { height:760px; }
}
@media (max-width: 700px) {
  .lua-booking-wrap { padding:58px 16px 64px; }
  .lua-booking-section { padding:24px 18px; border-radius:28px; }
  .lua-niki-card { grid-template-columns:84px 1fr; }
  .lua-niki-photo { width:84px; height:84px; }
  .lua-booking-calendar .calendly-inline-widget { height:760px; }
}


/* Legal pages — v1.2 */
.lua-legal-page { padding: 82px 28px 96px; background:#fff; }
.lua-legal-page .lua-legal-inner { max-width: 920px; margin:0 auto; }
.lua-legal-meta { color:var(--lua-muted); font-size:.94rem; margin-bottom:30px; }
.lua-legal-section { padding:26px 0; border-top:1px solid var(--lua-border); }
.lua-legal-section:first-of-type { border-top:0; }
.lua-legal-section h2 { color:var(--lua-navy); font-size:1.6rem; margin:0 0 12px; }
.lua-legal-section h3 { color:var(--lua-navy); font-size:1.15rem; margin:22px 0 8px; }
.lua-legal-section p, .lua-legal-section li { color:#4f6f97; line-height:1.7; }
.lua-legal-section ul { padding-left:1.25rem; }
.lua-legal-callout { margin:18px 0 30px; padding:20px 22px; border-radius:18px; background:#eef8ff; border:1px solid #d9ebf8; color:var(--lua-ink); }
.lua-legal-callout strong { color:var(--lua-navy); }
.lua-footer-legal { margin-top:10px; }
.lua-footer-legal a { color:#dbe9fb; text-decoration:none; margin:0 .45rem; }
.lua-footer-legal a:hover { color:#fff; }
.lua-form-note a, .lua-booking-note a { color:var(--lua-navy); font-weight:700; }
@media (max-width:700px){
  .lua-legal-page { padding:58px 20px 70px; }
}


/* Expanded editorial content pages — v1.3 */
.lua-content-section { padding:72px 28px; background:#fff; }
.lua-content-section.lua-soft { background:linear-gradient(180deg,#f7fbff,#fff); }
.lua-content-inner { max-width:980px; margin:0 auto; }
.lua-content-section h2 { color:var(--lua-navy); font-size:clamp(2rem,3.5vw,3.3rem); line-height:1.08; letter-spacing:-.035em; margin:0 0 18px; }
.lua-content-section h3 { color:var(--lua-navy); font-size:1.35rem; margin:28px 0 10px; }
.lua-content-section p, .lua-content-section li { color:#4f6f97; font-size:1.03rem; line-height:1.76; }
.lua-content-section ul { padding-left:1.25rem; }
.lua-content-callout { margin:28px 0; padding:26px 28px; border-radius:22px; background:linear-gradient(115deg,#eef8ff,#f4fffa); border:1px solid #dcecf7; }
.lua-content-callout p:last-child { margin-bottom:0; }
.lua-content-columns { gap:22px; }
.lua-content-card { height:100%; padding:30px; border-radius:22px; background:#fff; border:1px solid var(--lua-border); box-shadow:0 12px 36px rgba(17,60,136,.05); }
.lua-content-card h3 { margin-top:0; }
.lua-page-actions { margin-top:30px; }
.lua-page-actions .wp-block-button__link { border-radius:999px; font-weight:800; padding:14px 26px; }
.lua-founder-card img { width:100%; aspect-ratio:16/9; object-fit:cover; object-position:center 30%; border-radius:18px; display:block; }
.lua-founder-card .wp-block-image { margin:0; }
.lua-contact-details { padding:28px; border-radius:22px; background:#f8fbff; border:1px solid var(--lua-border); }
.lua-contact-details p { margin:.4rem 0; }
@media (max-width:700px){
  .lua-content-section { padding:54px 20px; }
  .lua-content-callout { padding:22px 20px; }
}


/* Rich interior pages — v1.4 */
.lua-editorial-hero { padding:110px 28px 96px; background:linear-gradient(180deg,#fff 0%,#f5fbff 100%); }
.lua-editorial-hero-warm { background:linear-gradient(180deg,#fff 0%,#fff9ed 100%); }
.lua-editorial-hero-grid { gap:64px; align-items:center; }
.lua-editorial-hero h1 { color:var(--lua-navy); font-size:clamp(3rem,5vw,5.1rem); line-height:.98; letter-spacing:-.05em; margin:.35rem 0 1rem; }
.lua-editorial-lead { color:#41668f; font-size:1.18rem; line-height:1.6; max-width:720px; }
.lua-editorial-photo { margin:0; border-radius:36px 36px 36px 64px; overflow:hidden; box-shadow:var(--lua-shadow); }
.lua-editorial-photo img { width:100%; min-height:410px; max-height:520px; object-fit:cover; display:block; }
.lua-family-photo img, .lua-contact-photo img { object-position:center 18%; }
.lua-reading-width { max-width:900px; }
.lua-feature-cards, .lua-process-cards, .lua-service-grid { gap:22px; margin-top:42px; }
.lua-mini-icon { width:50px; height:50px; border-radius:16px; display:grid; place-items:center; margin-bottom:18px; background:#e8f5ff; color:var(--lua-navy); font-weight:900; }
.lua-founder-feature { padding:34px; border:1px solid var(--lua-border); border-radius:30px; background:linear-gradient(120deg,#fff,#f8fcff); box-shadow:0 16px 44px rgba(17,60,136,.05); }
.lua-founder-feature-photo { margin:0; border-radius:24px; overflow:hidden; }
.lua-founder-feature-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 26%; display:block; }
.lua-process-card { height:100%; padding:34px 30px; border-radius:24px; background:#fff; border:1px solid var(--lua-border); box-shadow:0 12px 32px rgba(17,60,136,.05); }
.lua-step-badge { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; margin-bottom:22px; background:linear-gradient(135deg,#e7f4ff,#dffaf0); color:var(--lua-navy); font-size:1.65rem; font-weight:900; }
.lua-service-grid + .lua-service-grid { margin-top:22px; }
.lua-service-card { height:100%; padding:32px; border-radius:24px; background:#fff; border:1px solid var(--lua-border); box-shadow:0 12px 34px rgba(17,60,136,.045); }
.lua-service-card h3 { color:var(--lua-navy); margin:.65rem 0 .55rem; }
.lua-service-card p { color:var(--lua-muted); line-height:1.65; }
.lua-service-icon { width:68px; height:68px; display:grid; place-items:center; border-radius:20px; background:linear-gradient(135deg,#eef8ff,#f5fff9); font-size:1.75rem; }
.lua-family-points { gap:22px; }
.lua-privacy-banner { display:grid; grid-template-columns:86px 1fr; gap:26px; max-width:1180px; margin:26px auto 86px; padding:34px 38px; border-radius:28px; background:linear-gradient(115deg,#edf8ff,#f2fff9); border:1px solid #d8ebf7; box-shadow:0 12px 36px rgba(17,60,136,.05); }
.lua-privacy-banner h2 { color:var(--lua-navy); margin:0 0 10px; }
.lua-privacy-banner p { color:#4f6f97; line-height:1.68; }
.lua-privacy-icon { width:76px; height:76px; display:grid; place-items:center; border-radius:22px; background:#fff; font-size:1.9rem; box-shadow:0 8px 22px rgba(17,60,136,.07); }
.lua-contact-layout { gap:44px; }
.lua-contact-details { position:sticky; top:120px; }
.lua-contact-privacy { margin-top:0; }
@media (max-width:900px){
  .lua-editorial-hero { padding:78px 20px 72px; }
  .lua-editorial-hero-grid { gap:36px; }
  .lua-editorial-photo img { min-height:320px; max-height:420px; }
  .lua-contact-details { position:static; }
}
@media (max-width:700px){
  .lua-editorial-hero h1 { font-size:3.05rem; }
  .lua-editorial-photo { border-radius:26px; }
  .lua-editorial-photo img { min-height:280px; }
  .lua-founder-feature { padding:20px; }
  .lua-privacy-banner { grid-template-columns:1fr; margin:18px 20px 58px; padding:26px 22px; }
}
