/*
Theme Name: CASA University
Theme URI: https://casauniversity.com
Author: I-Tul Design & Software
Description: Lightweight theme for casauniversity.com. Replaces Enfold; pages are built with core blocks.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: casau
*/

:root {
	--casau-blue: #0e74b4;
	--casau-blue-bright: #189af7;
	--casau-blue-dark: #02447d;
	--casau-text: #5c5c5c;
	--casau-muted: #969696;
	--casau-border: #ebebeb;
	--casau-gray: #f2f2f2;
	--casau-light: #f8f8f8;
	--casau-max: 1310px;
	--casau-header: 88px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--casau-header) + 10px); }

body {
	margin: 0;
	background: #fff;
	color: var(--casau-text);
	font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; }
a { color: var(--casau-blue); text-decoration: none; }
a:hover, a:focus { color: var(--casau-blue-dark); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--casau-blue-bright); outline-offset: 2px; }

h1, h2, h3, h4 { color: var(--casau-blue-dark); line-height: 1.25; margin: 0 0 .6em; }
h1 { font-size: 2.6rem; font-weight: 700; }
h2 { font-size: 2.2rem; font-weight: 700; }
h3 { font-size: 1.25rem; font-weight: 700; }
p { margin: 0 0 1.1em; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; z-index: 1000; top: 8px; left: 8px;
	background: #fff; padding: 10px 16px; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.2);
}

.casau-container { max-width: var(--casau-max); margin: 0 auto; padding: 0 50px; }

/* ---------- Header ---------- */
.casau-topbar {
	background: var(--casau-light);
	border-bottom: 1px solid var(--casau-border);
	font-size: 12px; font-weight: 700; line-height: 30px; text-align: right;
}
.casau-topbar a { color: var(--casau-text); }

.casau-header {
	position: sticky; top: 0; z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--casau-border);
	transition: box-shadow .2s;
}
.casau-header.is-scrolled { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.casau-topbar .casau-container { max-width: none; padding: 0 30px; }
.casau-header .casau-container {
	max-width: none;
	display: flex; align-items: center; justify-content: space-between;
	min-height: var(--casau-header); padding: 0 30px;
}
.casau-logo img { display: block; width: 290px; height: auto; }

.casau-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.casau-nav a {
	display: block; position: relative;
	padding: 0 13px; line-height: var(--casau-header);
	color: var(--casau-text); font-size: 15px; font-weight: 700; text-transform: uppercase;
}
.casau-nav a:hover { color: var(--casau-blue); }
.casau-nav a::after {
	content: ""; position: absolute; left: 13px; right: 13px; bottom: -1px; height: 2px;
	background: var(--casau-blue); transform: scaleX(0); transition: transform .2s;
}
.casau-nav a:hover::after { transform: scaleX(1); }
.casau-nav .menu-login > a { color: var(--casau-muted); }
.casau-nav .menu-button > a {
	margin-left: 14px; padding: 0 32px; line-height: 42px;
	background: var(--casau-blue); color: #fff; border-radius: 30px;
}
.casau-nav .menu-button > a:hover { background: var(--casau-blue-dark); color: #fff; }
.casau-nav .menu-button > a::after { display: none; }

.casau-burger {
	display: none; border: 0; background: none; cursor: pointer;
	width: 44px; height: 44px; padding: 10px; margin-right: -10px;
}
.casau-burger span, .casau-burger span::before, .casau-burger span::after {
	display: block; width: 24px; height: 2px; background: var(--casau-text);
	position: relative; transition: transform .2s, background .2s;
}
.casau-burger span::before, .casau-burger span::after { content: ""; position: absolute; left: 0; }
.casau-burger span::before { top: -7px; }
.casau-burger span::after { top: 7px; }
.casau-burger[aria-expanded="true"] span { background: transparent; }
.casau-burger[aria-expanded="true"] span::before { transform: translateY(7px) rotate(45deg); }
.casau-burger[aria-expanded="true"] span::after { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Page content ---------- */
.casau-main { min-height: 50vh; }
.casau-page { padding: 60px 0 80px; }
.casau-page .entry-content { max-width: 1010px; }
.casau-page .entry-content h1 { font-size: 2.4rem; }
.casau-page .entry-content h3 { margin-top: 1.6em; }

/* Full-width front page built from block sections */
.casau-blocks > * { margin-top: 0; margin-bottom: 0; }
.casau-section { padding: 90px 0; }
.casau-section.is-gray { background: var(--casau-gray); }
.casau-section > .wp-block-group__inner-container,
.casau-section > .casau-inner { max-width: var(--casau-max); margin: 0 auto; padding: 0 50px; }
.casau-section .wp-block-columns { gap: 60px; align-items: center; margin: 0; }

.casau-hero {
	padding: 50px 0 40px;
	background: #0a4f96 url("/wp-content/uploads/2019/07/header-1.jpg") center/cover no-repeat;
	color: #fff;
}
.casau-hero h1 { color: #fff; font-size: 2.4rem; margin-bottom: .5em; }
.casau-hero ul { list-style: none; padding: 0; margin: 0 0 30px; }
.casau-hero li::before { content: "• "; }
.casau-hero > .wp-block-group__inner-container { max-width: 1400px; }
.casau-hero .wp-block-columns { gap: 80px; }

.casau-heading { text-align: center; font-size: 2.4rem; margin-bottom: 0; }

.casau-feature h2 { color: var(--casau-blue); font-weight: 100; font-size: 2.6rem; margin-bottom: .45em; }
.casau-feature h2.casau-heading { color: var(--casau-blue-dark); font-weight: 700; font-size: 2.4rem; }
.casau-feature h3 { color: var(--casau-blue); font-size: 1.3rem; margin-bottom: .9em; }

/* Buttons (core button block) */
.wp-block-button__link,
.casau-section .wp-block-button__link {
	display: inline-block; padding: 13px 44px; border-radius: 30px;
	background: var(--casau-blue-bright); color: #fff; font-weight: 700; font-size: 16px; line-height: 1.4;
	transition: background .2s;
}
.wp-block-button__link:hover, .wp-block-button__link:focus { background: var(--casau-blue); color: #fff; }

/* FAQ (core details block) */
.casau-faq { max-width: 810px; margin: 30px auto 0; }
.casau-faq .wp-block-details {
	background: #fff; border: 1px solid var(--casau-border); border-bottom: 0; margin: 0;
}
.casau-faq .wp-block-details:last-child { border-bottom: 1px solid var(--casau-border); }
.casau-faq summary {
	cursor: pointer; list-style: none; position: relative;
	padding: 10px 16px 10px 40px; font-size: 15px; color: var(--casau-text);
}
.casau-faq summary::-webkit-details-marker { display: none; }
.casau-faq summary::before {
	content: "+"; position: absolute; left: 16px; top: 9px; color: var(--casau-muted); font-size: 18px; line-height: 1.3;
}
.casau-faq details[open] summary { color: var(--casau-blue); }
.casau-faq details[open] summary::before { content: "−"; color: var(--casau-blue); }
.casau-faq .wp-block-details > :not(summary) { padding: 0 16px 14px 40px; margin: 0; }

/* Pricing */
.casau-pricing-intro { text-align: center; }
.casau-pricing-intro .is-lead { color: var(--casau-blue-bright); font-weight: 700; }
.casau-pricing.wp-block-columns { gap: 20px; align-items: stretch; margin-top: 30px; }
.casau-price-card { border: 1px solid var(--casau-border); text-align: center; background: #fff; }
.casau-price-card p, .casau-price-card ul, .casau-price-card .wp-block-buttons { margin: 0; }
.casau-price-card .casau-price-tier {
	background: var(--casau-blue-bright); color: #fff; padding: 8px 10px; font-size: 15px;
}
.casau-price-card .casau-price-amount {
	background: #2490f1; color: #fff; font-size: 3.6rem; font-weight: 700; line-height: 1; padding: 36px 10px 12px;
}
.casau-price-card .casau-price-amount sup { font-size: 1.5rem; font-weight: 400; vertical-align: top; position: relative; top: .2em; margin-right: 2px; }
.casau-price-card .casau-price-period { background: #2490f1; color: #fff; font-weight: 700; padding: 6px 10px 30px; }
.casau-price-card ul { list-style: none; margin: 0; padding: 0; }
.casau-price-card li { padding: 10px; border-top: 1px solid var(--casau-border); font-size: 16px; }
.casau-price-card li:nth-child(odd) { background: var(--casau-light); color: #444; }
.casau-price-card li:nth-child(even) { color: var(--casau-muted); }
.casau-price-card .wp-block-buttons { justify-content: center; padding: 22px 10px; border-top: 1px solid var(--casau-border); }

/* Sign-up card */
.casau-signup { padding: 60px 0 90px; }
.casau-signup .casau-card { max-width: 655px; margin: 0 auto; background: #fff; padding: 50px; }
.casau-signup h1 { font-size: 2.4rem; }

/* Contact Form 7 */
.wpcf7 label { display: block; font-weight: 700; font-size: 13px; color: var(--casau-text); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"],
.wpcf7 input[type="url"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; margin-top: 4px; padding: 10px 12px; font: inherit; font-weight: 400; font-size: 15px;
	color: #333; background: var(--casau-light); border: 1px solid #e1e1e1; border-radius: 2px;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--casau-blue-bright); background: #fff; }
.wpcf7 textarea { min-height: 120px; }
.wpcf7 input[type="submit"] {
	margin-top: 10px; padding: 13px 44px; border: 0; border-radius: 30px; cursor: pointer;
	background: var(--casau-blue-bright); color: #fff; font: inherit; font-weight: 700;
}
.wpcf7 input[type="submit"]:hover { background: var(--casau-blue); }
.wpcf7-not-valid-tip { font-size: 13px; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 10px 14px; border-radius: 2px; }

/* ---------- Footer ---------- */
.casau-footer { background: var(--casau-blue-dark); color: #fff; font-size: 12px; padding: 18px 0; }
.casau-footer a { color: #fff; }
.casau-footer a:hover { text-decoration: underline; }

.casau-totop {
	position: fixed; right: 50px; bottom: 50px; z-index: 90;
	width: 48px; height: 48px; border: 0; border-radius: 2px; cursor: pointer;
	background: var(--casau-blue); color: #fff; opacity: 0; pointer-events: none; transition: opacity .2s;
}
.casau-totop.is-visible { opacity: .7; pointer-events: auto; }
.casau-totop:hover { opacity: 1; }
.casau-totop::before {
	content: ""; display: block; width: 10px; height: 10px; margin: 4px auto 0;
	border-left: 2px solid #fff; border-top: 2px solid #fff; transform: rotate(45deg);
}

/* ---------- Responsive ---------- */
@media (max-width: 989px) {
	.casau-container, .casau-section > .wp-block-group__inner-container, .casau-section > .casau-inner { padding: 0 24px; }
	.casau-burger { display: block; }
	.casau-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		background: #fff; border-bottom: 1px solid var(--casau-border); box-shadow: 0 8px 16px rgba(0,0,0,.08);
	}
	.casau-nav.is-open { display: block; }
	.casau-nav ul { flex-direction: column; align-items: stretch; padding: 8px 0 16px; }
	.casau-nav a { line-height: 48px; padding: 0 24px; border-top: 1px solid var(--casau-light); }
	.casau-nav a::after { display: none; }
	.casau-nav .menu-button > a { margin: 12px 24px 0; text-align: center; }
	.casau-logo img { width: 220px; }
	.casau-section { padding: 60px 0; }
	.casau-section .wp-block-columns { gap: 30px; }
}
@media (max-width: 781px) {
	:root { --casau-header: 70px; }
	h1, .casau-heading, .casau-hero h1 { font-size: 2rem; }
	.casau-feature h2 { font-size: 2.1rem; }
	/* Rows where the image comes first on desktop show the text first on phones (as Enfold's mobile sections did) */
	.casau-section .wp-block-columns.casau-image-first { flex-direction: column-reverse; }
	.casau-hero { padding: 30px 0 40px; }
	.casau-pricing.wp-block-columns { gap: 30px; }
	.casau-signup .casau-card { padding: 30px 22px; }
	.casau-totop { right: 16px; bottom: 16px; }
	.casau-topbar { text-align: center; }
}
