@charset "utf-8";
/* CSS Document */

/* General */

body {
	background: #fff;
	/*	font: 1rem Arial,Helvetica,sans-serif; */
	margin: 0;
	padding: 0;
	text-align: center;
	font-family: "Roboto", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 1rem;
	color: #777;
}
byline {
	font-size: 12px;
	font-weight: normal;
	color: #f0f0f0;
	margin: 0;
	padding: 0;
	line-height: 15px;
}
/* h1 {
	font-size: 24px;
	font-weight: normal;
	color: #fff;
	margin: 0;
	padding: 0;
} */
h1 {
	font-size: 2rem;
	font-weight: 380;
	letter-spacing: -1px;
	color: #555;
	margin: 0 0 1.5rem 0;
}
h2 {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.2;
	color: #555;
	margin: 0 0 1.2rem 0;
}
/* h3 {
	font-size: 16px;
	font-weight: bold;
	letter-spacing: -1px;
	color: #666;
	margin: 30px 0 18px;
} */
h3 {
	font-size: 26px;
	font-weight: 400;
	color: #555;
	margin: 2rem 0 1rem 0;
}
/* h4 {
	font-size: 26px;
	font-weight: 400;
	color: #333;
	margin: 0 0 1.5rem;
} */
h4 {
	font-size: 20px;
	font-weight: 500;
	color: #555;
	margin: 1rem 0 0.8rem;
}
h5 {
	font-size: 1.3rem;
	font-weight: 500;
	color: #555;
	margin: 0 0 0.3rem 0;
}
h6 {
	font-size: 0.8rem;
	font-weight: 400;
	color: #777;
	margin: 0 0 1rem 0;
}
p {
	line-height: 1.5;
	margin: 0 0 1.5rem 0;
	padding: 0;
}
a {
	color: /* #4285f4 */ #1a73e8;
	font-weight: 450;
	text-decoration: none;
}
ol {
	margin: 0 0 0 22px;
	padding: 0;
}
ul {
	margin: 0 0 0 22px;
	padding: 0;
}
li {
	padding: 0 0 5px;
}
img {
	border: 0;
}
img.content-photo {
	float: right;
	padding: 0;
	width: 100%;
	max-width: 100%;
	height: auto;
}
img.scale {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}
img.scale-staff {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	box-shadow: 0 0.5rem 1rem #ddd;
	margin: 0 0 1rem 0;
}
table.calendar {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0px;
	margin: 0 0 25px;
}
table.calendar td {
	border-top: 1px solid #ddd;
	padding: 10px 0;
	vertical-align: top;
}
table.sample {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0px;
	margin: 0 0 25px;
}
table.sample th {
	background: #eff2f7;
	border: 1px solid #ddd;
	padding: 8px 15px;
}
table.sample td {
	border: 1px solid #ddd;
	padding: 8px 15px;
}
/* Mobile header elements */

#header {
	/*	position: sticky;
	top: 0px;
	z-index: 2; */
	background: #161617;
}
.header-padding {
	height: 1rem;
	background: #161617;
	width: 100%;
}
#header-wrap {
	height: 5rem;
	display: flex;
	justify-content: center;
	align-items: center;
}
#header-logo {
	margin: 0 0.5rem -0.2rem -0.7rem;
	width: 1.7rem;
	height: 1.7rem;
	background-size: 1.7rem;
	background-image: url(favicon-192x192.png);
}
#header-title {
	margin-top: 1px;
}
#header-title a {
	text-decoration: none;
	font-family: 'Questrial', serif;
	font-size: calc(1.6rem + 0.4vw);
	font-weight: 400;
	letter-spacing: -1px;
	color: #fff;
}
#header-base {
	width: 100%;
	height: 1px;
	margin: 0 auto;
	clear: both;
	background: #161617;
}
/* Mobile navigation */

#nav {
	position: fixed;
	bottom: 0;
	z-index: 2;
	width: 100%;
	background: linear-gradient(#fbfbfd, #fff);
	/*	border-radius: 1rem 1rem 0 0; */
	border-top: 1px solid #ccc;/*	box-shadow: 0 0 1rem #fff; *//*	background-color: rgba(243, 243, 243, 0.8); *//*	backdrop-filter: blur(16px); */
}
#nav ul {
	/*	list-style: none;
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	flex-wrap: nowrap;
*/	margin: 0;
	padding: 0.5rem;
}
#nav li {
	display: block;
	width: 20%;
	float: left;
}
#nav li a {
	/*	flex: 1;
*/	display: grid;
	align-items: center;
	height: 3.5rem;
	font-size: 12px;
	font-weight: 400;
	color: #333;
	text-decoration: none;
}
#nav li a:hover {
}
#nav li a.landing {
	font-weight: 600;
	color: #1a73e8;
}
span.landing {
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 34;
}
span.nav {
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' -25, 'opsz' 24;
}
/* Desktop header elements */

#desk-header {
	background: #000;
	margin: 0;
	padding: 0 6% 0 4%;
}
#desk-header-wrap {
	height: 5rem;
	line-height: 5em;
	flex: 21;
	margin: 0 auto;
}
#desk-header-logo {
	float: left;
	/*	margin: 1.8rem 0.5rem -0.5rem 0; */
	margin: 1.8rem 0.5rem 0 0;
	width: 1.7rem;
	height: 1.7rem;
	background-image: url(favicon-192x192.png);
	background-size: 1.7rem;
}
#desk-header-title {
	float: left;
}
#desk-header-title a {
	font-family: 'Questrial', serif;
	font-size: calc(1.6rem + 0.4vw);
	font-weight: 400;
	letter-spacing: -1px;
	color: #fff;
	text-decoration: none;
}
/* Desktop navigation */

#desk-nav {
	flex: 19;
	width: 100%;
	max-width: 450px;
}
#desk-nav ul {
	display: flex;
	justify-content: space-between;
	list-style: none;
}
#desk-nav li {
	flex: 0 1 auto;
	padding: 2px 0;
}
#desk-nav li a {
	font-size: 0.9rem;
	color: #fff;
	text-decoration: none;
}
#desk-nav li a:hover {
	color: #d2e3fc;
}
#desk-nav li a.landing {
}
.hover-underline-animation {
	display: inline-block;
	position: relative;
}
.hover-underline-animation::after {
	content: '';
	position: absolute;
	width: 100%;
	transform: scaleX(0);
	height: 2px;
	bottom: 0;
	left: 0;
	background-color: #d2e3fc;
	transform-origin: bottom center;
	transition: transform 0.15s ease-out;
}
.hover-underline-animation:hover::after {
	transform: scaleX(1);
	transform-origin: bottom center;
}
/* Body elements */


.two-up-cell {
	text-align: left;
	padding: 2rem 2rem 1rem 2rem;
}
.two-up-container {
	flex-basis: 100%;
	flex-grow: 0;
	margin: 0 auto 20px;
	background: #fff;
	background-size: 50px;
	box-shadow: 0 0.5rem 1rem #d5d9ec;
}
.about-cell {
	padding: 0 1.8rem 0.8rem 1.8rem;
	text-align: left;
}
.about-container {
	flex-basis: 100%;
	flex-grow: 0;
	background: #fff;
	/*	background-image: url(favicon-bw.png);
	background-size: 25%;
	background-position: right bottom;
	background-repeat: no-repeat; */
	/*	border: #ddd 1px solid; */
	margin: 0 0 2rem 0;
	overflow: hidden;/*	box-shadow: 0 0.5rem 1rem #e6e6e6; */
}
.about-container-img {
	position: relative;
	top: 0px;
	left: 0px;
	z-index: 1;
	width: 100%;
	max-width: 100%;
	height: auto;
}
#about-wrap {
	margin: 0 auto;
	padding: 2rem 0 0 0;
}
#about-header-image {
	flex: 1;
	padding: 0;
	margin: 0 0.8rem 2rem 0.8rem;
}
#about-header-text {
	flex: 100%;
	max-width: 100%;
	padding: 0 0.8rem;
}
#about-header-wrap {
	margin: 0 auto;
	padding: 0 1rem 0 1rem;
	text-align: left;
}
#attention {
	border: 1px solid #fff1a8;
	background-color: #ffc;
	padding: 15px 20px 0 20px;
	margin: 0 0 25px 0;
}
#body-header-wrap {
	clear: both;
	margin: 0 auto;
	background: #161617;
}
#body-header-container {
	clear: both;
	margin: 0 auto;
	padding: 1.5rem 0 0 0;
	border-radius: 1.5rem 1.5rem 0 0;
	background: #fff;
}
.body-wrap {
	margin: 0 auto;
	padding: 0 0 0.2rem 2rem;
	background: #fff;
	text-align: left;
}
.body-wrap-secondary {
	margin: 0 auto;
	padding: 0 2rem;
	text-align: left;
	background: #fff;
}
.div-base {
	clear: both;
	margin: 0;
	padding: 0;
}
.flex {
	display: flex;
	flex-wrap: wrap;
}
.flex-center {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.flex-space-between {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
#footer {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1.5rem 2.5rem;
}
#footer-base {
	width: 100%;
	height: 4rem;
	margin: 0 auto;
	clear: both;
}
#footer-copy {
	flex-basis: 100%;
	flex-grow: 0;
	text-align: left;
}
#footer-copy p {
	font-size: 14px;
	line-height: 1.5;
	padding: 0;
	margin: 1rem 2rem;
}
#footer-copy a {
	color: #555;
	text-decoration: none;
}
#footer-image {
	flex-basis: 100%;
	flex-grow: 0;
	align-items: center;
}
#insta-container {
	flex-basis: 100%;
	flex-grow: 0;
	padding: 0 0 2.5rem 0;
}
.landing-text {
	flex: 100%;
	flex-grow: 0;
	padding: 0 13% 1.5rem 13%;
}
#landing-wrap {
	width: 110%;
	margin: 0 0 0 -5%;
	padding: 3rem 0 1rem 0;
}
.line {
	height: 12px;
	border-bottom: 1px dashed #ccc;
	margin: 0 0 25px 0;
}
.material-symbols-outlined {
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24
}
.narrow-column {
	margin: 0 auto;
	padding: 0.5rem 1.8rem;
	text-align: left;
	max-width: 850px;
}
#news-container {
	clear: both;
	margin: 0 auto;
	padding: 1rem 1.5rem;
	border-radius: 1.5rem 1.5rem 0 0;
	background: #e3eafd;
}
#news-container p {
	margin: 0;
	padding: 0;
	font-size: 0.9rem;
}
#news-wrap {
	clear: both;
	margin: 0 auto;
	background: #161617;
}
.no-wrap {
	text-wrap: nowrap;
}
#page-jump-wrap {
	border-left: 1px solid #ccc;
}
.link-block {
	display: block;
}
.programs-cell {
	text-align: left;
	padding: 2rem 2rem 1rem 2rem;
}
.programs-container {
	flex-basis: 100%;
	flex-grow: 0;
	margin: 0 auto 20px;
	background: #fff url(images/symbol-box-link.png) no-repeat top 1rem right 1rem;
	background-size: 50px;
	border-radius: 2rem;
	box-shadow: 0 0.5rem 1rem #d5d9ec;
}
#programs-wrap {
	text-align: center;
	margin: 0 auto;
	padding: 0.5rem 1.5rem 1.5rem 1.5rem;
}
#programs-wrap a {
	color: #555;
	font-weight: 400;
	text-decoration: none;
}
#programs-wrap a:hover {
}
#reviews-container {
	z-index: 0;
	flex-basis: 100%;
	flex-grow: 0;
	align-items: center;
	margin-bottom: 1rem;
}
#reviews-text {
	flex-basis: 100%;
	flex-grow: 0;
}
#reviews-wrap {
	margin: 0 auto;
	padding: 3rem 2.5rem 1.5rem 2.5rem;
	text-align: center;
}
.row-binomial {
	background: #fff;
	margin: 0 auto;
	background-image: url(favicon-bw.png);
	background-size: 15%;
	background-position: right 1% bottom 5%;
	background-repeat: no-repeat;
}
.row-blue {
	background: #f1f3fb;
	margin: 0 auto;
	padding: 1.5rem 0 0 0;
}
.row-gradient {
	/*background:	#e6f4ea; */
	background: linear-gradient(#fcfcfc, #eff3f5);
	margin: 0 auto;/*	border-radius: 0 0 2rem 2rem; */
}
.row-grey {
	background: #f4f5f6;
	margin: 0 auto;
}
.row-white {
	margin: 0 auto;
}
.row-white-footer {
	background: #fff url(images/breadcrumb-brdr.jpg) no-repeat top;
	margin: 0 auto;
}
.row-white-about {
	overflow: hidden;
	background: linear-gradient(#fff, #fff, #fff, #f4f5f6);
	/*	background: #fff url(images/breadcrumb-brdr.jpg) no-repeat bottom; */
	margin: 0 auto;
}
.row-white-rev-about {
	overflow: hidden;
	background: linear-gradient(#f4f5f6, #fff, #fff);
	/*	background: #fff url(images/breadcrumb-brdr.jpg) no-repeat bottom; */
	margin: 0 auto;
}
.staff-name {
	flex-basis: 100%;
	text-align: center;
}
.staff-text {
	flex-basis: 100%;
	margin: 0.5rem 0.5rem 2rem 0.5rem;
	padding: 0;
}
#staff-wrap {
	margin: 0 1.5rem;
	padding: 0 0 1rem 0;
	text-align: left;
}
.text-bold {
	font-weight: 500;
}
.text-em {
	font-weight: 480;
}
.text-light {
	font-weight: 300;
}
.text-wrap {
	padding: 1rem 5%;
}

/* Reusable secondary-page elements */

.section-heading {
	text-align: center;
}

.text-accent {
	color: #ea4335;
}

table.sample-day td:first-child {
	white-space: nowrap;
	width: 1%;
	font-weight: 500;
	padding-right: 1.5rem;
}

/* Mobile vs Desktop */

.mobile-display {
	display: block
}
.desktop-display {
	display: none
}
@media (min-width: 801px) {
.about-cell {
	padding: 0 3rem 1.2rem 3rem;
}
#about-header-image {
	order: 1;
	flex: 1;
	margin: 0 0 2rem 0;
	padding: 0;
	max-width: 800px;
	min-width: 305px;
}
#about-header-text {
	order: 2;
	flex: 1;
	margin: 0;
	padding: 0;
}
#about-header-text p {
	padding: 0 0 0 10%;
}
#about-header-text h4 {
	padding: 0 0 0 10%;
	margin: 0 0 0.8rem;
}
#body-header-container {
	border-radius: 0.5rem 0.5rem 0 0;
}
.body-wrap {
	margin: 0 auto;
	padding: 0 5% 0.1rem 5%;
	border-radius: 0 0 0.5rem 0.5rem;
/*	background: #fff url(images/breadcrumb-brdr.jpg) no-repeat bottom; */
}
.desktop-display {
	display: block
}
#footer-copy {
	flex-basis: 47%;
	order: 1
}
#footer-image {
	flex-basis: 47%;
	order: 2
}
h1 {
	font-size: calc(1.6rem + 0.8vw);
}
img.content-photo {
	padding: 5px 0 5px 5rem;
	width: 50%;
	max-width: 50%;
	height: auto;
}
#insta-container {
	flex: 6;
	order: 2;
	padding: 0 0 1.5rem 0;
}
.landing-text {
	flex: 4;
	order: 1;
	padding: 0 4% 0 6%;
}
#landing-wrap {
	width: 100%;
	max-width: 1285px;
	margin: 0 auto;
	overflow: visible;
	text-align: left;
}
.mobile-display {
	display: none
}
.page-break {
	padding: 0.5rem;
}
#programs-wrap {
	max-width: 1285px;
}
.narrow-column {
	padding: 1rem 5%;
}
#news-container {
	border-radius: 0.5rem 0.5rem 0 0;
}
#reviews-container {
	flex-basis: 30%;
	order: 1;
}
#reviews-text {
	flex-basis: 65%;
	order: 2;
}
#reviews-wrap {
	max-width: 1120px;
	text-align: left;
}
.staff-name {
	flex: 3;
	margin: 0;
	text-align: right;
	padding: 0 4% 0 0;
}
.staff-text {
	flex: 5;
	margin: 0 0 3rem 0;
	padding: 0 0 0 4%;
	border-left: 1px solid #ccc;
}
#staff-wrap {
	max-width: 1285px;
	margin: 0 auto;
	padding: 2.5rem 4.5% 0.5rem 4.5%;
}
.text-wrap {
	width: 50%;
}
}
 @media (min-width: 801px) and (max-width: 1080px) {
.about-container {
	flex-basis: 100%;
	border-radius: 0rem;
}
#about-header-wrap {
	margin: 0 auto;
	padding: 0 5%;
}
#about-wrap {
	padding: 0 5%;
}
.body-wrap-secondary {
	margin: 0 auto;
	padding: 0 4.5%;
}
.flex {
}
}
@media (min-width: 1081px) {
.about-container {
	flex-basis: 49%;
	border-radius: 0rem;
}
#about-header-wrap {
	max-width: 1380px;
	margin: 0 auto;
	padding: 0 4.5%;
}
#about-wrap {
	max-width: 1380px;
	padding: 0 4.5%;
}
.body-wrap-secondary {
	margin: 0 auto;
	padding: 0 9%;
}
.flex {
	align-items: center;
}
}
 @media (min-width: 801px) and (max-width: 1300px) {
.programs-container {
	flex-basis: 48%;
}
#programs-wrap {
	padding: 0.5rem 4.5% 1.5rem 4.5%;
}
.two-up-container {
	flex-basis: 49%;
}
}
@media (min-width: 1301px) {
.programs-container {
	flex-basis: 24%;
	margin: 0 0 20px 0;
}
#programs-wrap {
	padding: 0.5rem 4.5% 1.5rem 4.5%;
}
.two-up-container {
	flex-basis: 49%;
}
}

/* =========================================================
   Carrig reusable secondary-page components
   Finalized from the Elementary page redesign
   ========================================================= */

/* Centered section headings */
.section-heading {
    text-align: center;
}

/* Red accent text */
.text-accent {
    color: #ea4335;
}

/* Five Great Stories */
.story-block {
    position: relative;
    margin: 1.5rem 0;
    padding: 1rem 0 1rem 5rem;
    border-top: 1px solid #ddd;
}

.story-number {
    position: absolute;
    left: 0;
    top: 1rem;
    font-size: 2.5rem;
    font-weight: 300;
    color: #ea4335;
}

.story-block h2 {
    margin: 0 0 1rem 0;
}

/* Lower Elementary curriculum grid */
.curriculum-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.75rem;
    margin-top: 2.5rem;
    margin-bottom: 3rem;
}

.curriculum-card {
    min-width: 0;
}

.subject-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: rgba(255,255,255,.72);
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 5px rgba(0,0,0,.05);
}

.subject-table th {
    background: #f0f0f0;
    color: #ea4335;
    font-size: 1.05rem;
    font-weight: 500;
    text-align: left;
    padding: 1rem 1.1rem;
    border-bottom: 2px solid #ddd;
}

.subject-table td {
    padding: .75rem 1.1rem;
    vertical-align: top;
    line-height: 1.4;
    border-bottom: 1px solid #e5e5e5;
}

.subject-table tbody tr:nth-child(even) td {
    background: rgba(245,245,245,.55);
}

.subject-table tbody tr:last-child td {
    border-bottom: 0;
}

/* Tuition table on blue section */
.tuition-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: rgba(255,255,255,.96);
    color: #333;
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    margin: 1rem 0 2rem;
}

.tuition-table th {
    background: #FFFDF8 !important;
    color: #333;
    font-weight: 500;
    text-align: left;
    padding: .8rem 1rem;
    border-bottom: 1px solid #ddd;
}

.tuition-table td {
    background: #fff;
    color: #333;
    padding: .8rem 1rem;
    border-bottom: 1px solid #ddd;
}

.tuition-table tbody tr:nth-child(even) td {
    background: #fff;
}

.tuition-table tbody tr:last-child td {
    border-bottom: 0;
}

/* Responsive curriculum layout */
@media (max-width: 850px) {
    .curriculum-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .curriculum-table {
        min-width: 620px;
    }

    .curriculum-table-wrap {
        margin-right: -1rem;
        padding-right: 1rem;
    }
}

@media (max-width: 600px) {
    .curriculum-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* Mindful Parenting session components — modern treatment */
.parenting-session-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 1050px;
    margin: 2.75rem auto 2.5rem;
}

.parenting-session-column {
    position: relative;
    padding: 1.35rem 2.75rem 1.5rem;
    border-top: 2px solid rgba(234,67,53,.75);
}

.parenting-session-column + .parenting-session-column {
    border-left: 1px solid rgba(80,80,80,.22);
}

.parenting-session-kicker {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: .7rem;
    color: #ea4335;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .14em;
}

.parenting-session-dot {
    display: inline-block;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: #ea4335;
    flex: 0 0 auto;
}

.parenting-session-column h4 {
    margin: 0 0 .75rem;
    font-size: 1.5rem;
    line-height: 1.2;
}

.parenting-session-column p {
    margin: 0;
    line-height: 1.55;
}

.parenting-session-column p strong {
    font-weight: 600;
}

@media (max-width: 700px) {
    .parenting-session-columns {
        grid-template-columns: 1fr;
        margin-top: 2rem;
    }

    .parenting-session-column {
        padding: 1.25rem 0 1.75rem;
    }

    .parenting-session-column + .parenting-session-column {
        border-left: 0;
        border-top: 1px solid rgba(80,80,80,.22);
    }
}


/* Reusable action button */
.action-button {
    display: inline-block;
    padding: .72rem 1.25rem;
    background: #4f73df;
    color: #fff !important;
    text-decoration: none;
    border-radius: 5px;
    font-weight: 600;
    line-height: 1.2;
    transition: background-color .15s ease, transform .15s ease;
}

.action-button:hover,
.action-button:focus {
    background: #3f61c7;
    color: #fff !important;
    text-decoration: none;
}

.action-button:active {
    transform: translateY(1px);
}


/* Admissions page */
.admissions-notice {
    margin: 0 auto 3rem;
    padding: 1rem 1.25rem;
    border-left: 4px solid #ea4335;
    background: rgba(255,255,255,.72);
}

.admissions-essentials {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 2rem;
    margin: 2.5rem 0 1.5rem;
}

.admissions-essential {
    padding: 1.25rem 1.5rem;
    background: rgba(255,255,255,.68);
    border: 1px solid rgba(210,210,210,.8);
    border-radius: 8px;
    position: relative;
    overflow: hidden;
}

.admissions-essential .material-symbols-outlined {
    position: absolute;
    top: .35rem;
    right: .45rem;
    float: none;
    font-size: 3.4rem;
    color: #e4e4e4;
    opacity: .65;
    line-height: 1;
}

.admissions-essential h4 {
    margin: 0 0 .55rem;
}

.admissions-essential p {
    margin: 0;
}

.admissions-priority {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid #d9d9d9;
}

.admissions-steps {
    margin: 2.5rem 0;
}

.admissions-step {
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 1.25rem;
    padding: 1.5rem 0;
    border-top: 1px solid #ddd;
}

.admissions-step:last-child {
    border-bottom: 1px solid #ddd;
}

.admissions-step-number {
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 300;
    color: #ea4335;
}

.admissions-step h4 {
    margin: 0 0 .5rem;
}

.admissions-step p {
    margin: 0;
}

.admissions-dates {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 2rem 0;
    padding: 1.25rem 0;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

.admissions-dates div {
    text-align: center;
}

.admissions-dates strong,
.admissions-dates span {
    display: block;
}

.admissions-dates strong {
    font-size: 1.05rem;
}

.admissions-dates span {
    margin-top: .3rem;
    font-size: .85rem;
}

.admissions-other {
    color: #333;
}

.admissions-other-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
}

.admissions-other-grid > div {
    padding: 1.5rem 2rem;
    background: rgba(255,255,255,.82);
    border-radius: 8px;
}

.admissions-kicker {
    margin-bottom: .6rem;
    color: #ea4335;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .14em;
}

@media (max-width: 700px) {
    .admissions-essentials,
    .admissions-other-grid,
    .admissions-dates {
        grid-template-columns: 1fr;
    }

    .admissions-essential,
    .admissions-other-grid > div {
        padding: 1.25rem;
    }

    .admissions-dates div {
        text-align: left;
    }
}

/* Admissions dates — featured milestone treatment */
.admissions-dates-heading {
    margin: 2.75rem 0 1.25rem;
    text-align: center;
    font-size: 1.35rem;
    font-weight: 500;
    letter-spacing: .01em;
    color: #333;
}

.admissions-dates {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 0 0 2.5rem;
    padding: 0;
    border: 0;
}

.admissions-date-item {
    position: relative;
    padding: 1.35rem 1.25rem 1.25rem;
    text-align: center;
    background: #f5f5f5;
    border-top: 3px solid #ea4335;
    border-radius: 7px;
}

.admissions-date-item strong {
    display: block;
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.2;
}

.admissions-date-item span {
    display: block;
    margin-top: .45rem;
    font-size: .88rem;
    line-height: 1.35;
    color: #555;
}

@media (max-width: 700px) {
    .admissions-dates {
        grid-template-columns: 1fr;
        gap: .8rem;
    }

    .admissions-date-item {
        text-align: left;
        padding: 1rem 1.25rem;
    }

    .admissions-date-item strong,
    .admissions-date-item span {
        display: inline;
    }

    .admissions-date-item span {
        margin-left: .5rem;
    }
}


/* Admissions timeline — intentionally distinctive treatment */
.admissions-timeline {
    position: relative;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0 !important;
    margin: 2rem 0 3rem !important;
    padding: 2.25rem 0 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.admissions-timeline::before {
    content: "";
    position: absolute;
    top: 2.75rem;
    left: 8%;
    right: 8%;
    height: 2px;
    background: #d8d8d8;
}

.admissions-timeline .timeline-heading {
    grid-column: 1 / -1;
    margin: 0 0 2.25rem !important;
    padding: 0 !important;
    text-align: center;
    font-size: 1.35rem !important;
    font-weight: 500 !important;
}

.admissions-timeline .timeline-heading .text-accent {
    color: #ea4335;
}

.admissions-timeline .timeline-item {
    position: relative;
    z-index: 1;
    margin: 0 .65rem;
    padding: 1.25rem 1rem 1.4rem !important;
    text-align: center;
    background: #fff !important;
    border: 1px solid #dedede !important;
    border-top: 0 !important;
    border-radius: 8px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,.08) !important;
}

.admissions-timeline .timeline-marker {
    width: 1.15rem;
    height: 1.15rem;
    margin: -1.82rem auto 1.15rem;
    border: 4px solid #fff;
    border-radius: 50%;
    background: #ea4335;
    box-shadow: 0 0 0 2px #ea4335;
}

.admissions-timeline .timeline-item strong {
    display: block;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.2;
}

.admissions-timeline .timeline-item span {
    display: block;
    margin-top: .5rem;
    font-size: .88rem;
    line-height: 1.35;
    color: #555;
}

@media (max-width: 700px) {
    .admissions-timeline {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        padding-top: 1rem !important;
    }

    .admissions-timeline::before {
        display: none;
    }

    .admissions-timeline .timeline-heading {
        margin-bottom: 1rem !important;
    }

    .admissions-timeline .timeline-item {
        margin: 0;
        text-align: left;
        padding: 1rem 1.25rem !important;
    }

    .admissions-timeline .timeline-marker {
        float: left;
        margin: .2rem 1rem 0 0;
        width: .8rem;
        height: .8rem;
        border-width: 3px;
    }
}


/* Balanced tuition-section spacing */
.tuition-section .narrow-column {
    padding-bottom: 2rem;
}


/* Balanced tuition-section spacing */
.tuition-section .narrow-column {
    padding-bottom: 2rem;
}


/* =========================================================
   Calendar page
   ========================================================= */

.calendar-page {
    background: #f7f5f1;
}

.calendar-intro {
    position: relative;
    overflow: hidden;
    padding-bottom: 2.25rem !important;
    background: #fff;
}

.calendar-intro-inner {
    position: relative;
    z-index: 1;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 2rem;
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 4rem;
    align-items: center;
}

.calendar-intro-image {
    display: flex;
    justify-content: center;
}

.calendar-paper {
    position: relative;
    width: 175px;
    background: #fff;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    text-align: center;
    transform: rotate(-2deg);
    box-shadow: 0 10px 25px rgba(0,0,0,.10);
}

.calendar-paper-month {
    padding: .65rem;
    background: #ea4335;
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .1em;
}

.calendar-paper-day {
    margin-top: .65rem;
    font-size: 4.2rem;
    line-height: 1;
    font-weight: 300;
}

.calendar-paper-label {
    padding: .5rem 0 1rem;
    color: #777;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.calendar-intro-copy h4 {
    margin: 0 0 .75rem;
    color: #4f73df;
    font-size: 1.5rem;
    font-weight: 600;
}

.calendar-intro-copy p {
    max-width: 650px;
    margin: 0;
    line-height: 1.7;
}

.calendar-schedule {
    padding: 3.25rem 2rem 3.5rem !important;
    background: #f7f5f1;
}

.calendar-section-heading {
    max-width: 760px;
    margin: 0 auto 2.5rem;
    text-align: left;
}

.calendar-section-heading h2 {
    margin: 0 0 .6rem;
    font-size: 2.2rem;
    font-weight: 400;
    text-transform: lowercase;
}

.calendar-section-heading p {
    max-width: 650px;
    margin: 0 auto;
    color: #666;
    line-height: 1.6;
}

.calendar-month {
    margin: 0 0 3.25rem;
}

.playful-month-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
    padding-left: .25rem;
}

.playful-month-heading::before {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ea4335;
    flex: 0 0 auto;
}

.calendar-month:nth-of-type(2n) .playful-month-heading::before {
    background: #4f73df;
}

.calendar-month:nth-of-type(3n) .playful-month-heading::before {
    background: #e3a62f;
}

.calendar-month:nth-of-type(4n) .playful-month-heading::before {
    background: #55a66d;
}

.calendar-month-heading h3 {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 500;
}

.calendar-event-list {
    background: transparent;
    border: 0;
    border-radius: 14px;
    overflow: visible;
}

.playful-event {
    position: relative;
    display: grid;
    grid-template-columns: 125px 1fr;
    align-items: center;
    min-height: 76px;
    margin-bottom: .7rem;
    border: 0;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 3px 12px rgba(0,0,0,.055);
    transition: transform .15s ease, box-shadow .15s ease;
}

.playful-event:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0,0,0,.08);
}

.playful-event::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: #ea4335;
}

.calendar-month:nth-of-type(2n) .playful-event::before {
    background: #4f73df;
}

.calendar-month:nth-of-type(3n) .playful-event::before {
    background: #e3a62f;
}

.calendar-month:nth-of-type(4n) .playful-event::before {
    background: #55a66d;
}

.playful-event .calendar-event-date {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1rem;
    background: #fff;
    border-right: 0;
    color: #444;
    text-align: center;
}

.playful-event .calendar-event-date strong {
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.15;
}

.playful-event .calendar-event-info {
    padding: .85rem 1.2rem;
}

.playful-event .calendar-event-info h4 {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.4;
}

.playful-event .calendar-event-info p {
    margin: .2rem 0 0;
    color: #777;
    font-size: .78rem;
    line-height: 1.4;
}

.calendar-transition {
    position: relative;
    overflow: hidden;
    padding: 3rem 2rem !important;
}

.calendar-transition-inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 4rem;
    align-items: start;
}

.calendar-transition-inner h2 {
    margin: 0;
    font-size: 2rem;
    font-weight: 400;
}

.calendar-transition-inner p {
    margin: 0;
    line-height: 1.7;
}

/* Explicitly suppress the decorative circles removed from the current design. */
.calendar-intro::after,
.calendar-transition::before,
.calendar-transition::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 700px) {
    .calendar-intro-inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding-left: 1.25rem;
        padding-right: 1.25rem;
        align-items: center;
    }

    .calendar-intro-image {
        display: flex !important;
        justify-content: center;
        order: 1;
    }

    .calendar-intro-copy {
        order: 2;
        text-align: center;
    }

    .calendar-intro-copy h4 {
        margin-bottom: .55rem;
        font-size: 1.3rem;
    }

    .calendar-intro-copy p {
        max-width: 520px;
        margin-left: auto;
        margin-right: auto;
        font-size: .95rem;
        line-height: 1.6;
    }

    .calendar-paper {
        width: 135px;
        transform: rotate(-1.5deg);
    }

    .calendar-paper-month {
        padding: .5rem;
        font-size: .68rem;
    }

    .calendar-paper-day {
        margin-top: .45rem;
        font-size: 3.2rem;
    }

    .calendar-paper-label {
        padding: .4rem 0 .7rem;
        font-size: .6rem;
    }

    .calendar-intro {
        padding-bottom: 1.75rem !important;
    }

    .calendar-schedule {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .playful-event {
        grid-template-columns: 85px 1fr;
        min-height: 68px;
    }

    .playful-event .calendar-event-date {
        padding: .65rem .5rem;
    }

    .playful-event .calendar-event-info {
        padding: .75rem .9rem;
    }

    .playful-event .calendar-event-info h4 {
        font-size: .94rem;
    }

    .calendar-transition-inner {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* =========================================================
   Staff page — editorial educator profiles
   ========================================================= */

#staff-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 1.5rem 3.5rem;
    text-align: left;
}

.staff-profile {
    display: grid;
    grid-template-columns: minmax(240px, 31%) minmax(0, 1fr);
    gap: 3.5rem;
    align-items: start;
    margin: 0;
    padding: 3.25rem 3rem;
    border-top: 1px solid rgba(90,90,90,.14);
}

.staff-profile:first-child {
    border-top: 0;
}

.staff-profile:nth-child(even) {
    background: rgba(255,255,255,.58);
    border-radius: 12px;
}

.staff-name {
    margin: 0;
    padding: 0;
    text-align: left;
}

.staff-name img.scale-staff {
    display: block;
    width: 100%;
    max-width: 330px;
    height: auto;
    margin: 0 0 1.4rem;
    padding: 0;
    border-radius: 10px;
    box-shadow: 0 7px 20px rgba(0,0,0,.10);
}

.staff-heading {
    position: relative;
    padding-top: .15rem;
}

.staff-heading::before {
    content: "";
    display: block;
    width: 2.4rem;
    height: 3px;
    margin-bottom: .85rem;
    border-radius: 2px;
    background: #ea4335;
}

.staff-heading h5 {
    margin: 0;
    color: #444;
    font-size: 1.45rem;
    font-weight: 550;
    line-height: 1.25;
}

.staff-role {
    margin: .35rem 0 0;
    color: #5f8f72;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.3;
}

.staff-heading h6 {
    margin: .35rem 0 0;
    color: #777;
    font-size: .82rem;
    font-weight: 450;
    line-height: 1.45;
}

.staff-separator {
    padding: 0 .25rem;
    color: #aaa;
}

.staff-text {
    margin: 0;
    padding: .1rem 0 0;
    border: 0;
}

.staff-text p {
    margin: 0 0 1.25rem;
    line-height: 1.68;
}

.staff-text p:last-child {
    margin-bottom: 0;
}

/* Profiles awaiting a staff photograph retain the same desktop rhythm. */
.staff-profile-no-photo .staff-name {
    padding-top: .1rem;
}

/* Staff page only — intermediate landscape-phone/small-tablet layout */
@media (min-width: 651px) and (max-width: 900px) {
    .staff-profile {
        grid-template-columns: minmax(190px, 30%) minmax(0, 1fr);
        gap: 2rem;
        padding: 2.5rem 1.5rem;
    }
}

/* Staff page only — stacked phone layout */
@media (max-width: 650px) {
    #staff-wrap {
        padding: .5rem 0 2.5rem;
    }

    .staff-profile {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2.5rem 1.8rem;
        border-top: 1px solid rgba(90,90,90,.16);
    }

    .staff-profile:nth-child(even) {
        border-radius: 0;
    }

    .staff-name img.scale-staff {
        width: 100%;
        max-width: 520px;
        margin: 0 auto 1.4rem;
    }

    .staff-heading h5 {
        font-size: 1.35rem;
    }

    .staff-text {
        padding-top: 0;
    }
}

@media (max-width: 520px) {
    .staff-profile {
        padding: 2.25rem 1.5rem;
    }
}

.application-cta {
    text-align: center;
    margin: 1.5rem 0;
}
/* APPLICATION CONFIRMATION */
.application-confirmation-hero {
    text-align: left;
}

.application-confirmation-hero .narrow-column {
    max-width: 820px;
    padding-top: 2.75rem;
    padding-bottom: 3.25rem;
}

.confirmation-status {
    text-align: center;
    margin-bottom: 2.1rem;
}

.confirmation-check {
    margin-bottom: .35rem;
}

.confirmation-check .material-symbols-outlined {
    font-size: 3.2rem;
    color: #55a66d;
    font-variation-settings: 'FILL' 1;
}

.confirmation-kicker {
    color: #6f7d73;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.confirmation-intro {
    display: grid;
    grid-template-columns: minmax(190px, .75fr) minmax(0, 1.65fr);
    gap: 2.25rem;
    align-items: start;
    padding-top: 1.7rem;
    border-top: 1px solid rgba(0,0,0,.11);
}

.application-confirmation-hero h1 {
    margin: -.15rem 0 0;
    padding-left: 1.75rem;
    text-align: left;
}

.confirmation-message {
    margin: 0;
    padding: 0;
    border: 0;
}

.application-confirmation-hero h4 {
    margin: 0 0 .7rem;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.45;
}

.application-confirmation-hero p {
    margin: 0;
    line-height: 1.7;
}

.application-tour-info .narrow-column,
.application-tour-schedule .narrow-column,
.application-next-steps .narrow-column {
    padding-top: 3rem;
    padding-bottom: 3.25rem;
}

.tour-guidelines {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2rem;
}

.tour-guideline {
    position: relative;
    min-height: 155px;
    padding: 1.5rem;
    overflow: hidden;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(0,0,0,.045);
}

.tour-guideline > .material-symbols-outlined {
    position: absolute;
    top: .4rem;
    right: .5rem;
    font-size: 3.5rem;
    color: #e3e5e7;
    opacity: .75;
    line-height: 1;
}

.tour-guideline h4 {
    position: relative;
    margin: 0 0 .65rem;
    padding-right: 2rem;
    color: #444;
}

.tour-guideline p {
    position: relative;
    margin: 0;
    line-height: 1.6;
}

.tour-schedule-intro {
    max-width: 720px;
    margin: .75rem auto 2rem;
    text-align: center;
    line-height: 1.65;
}

.tour-date-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 0 0 2.5rem;
}

.tour-date-card {
    position: relative;
    padding: 1.45rem 1.35rem 1.5rem;
    background: #fff;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(0,0,0,.06);
}

.tour-date-card.tour-available {
    border-top: 4px solid #55a66d;
    background: linear-gradient(180deg, #f5fbf6 0%, #fff 58%);
}

.tour-status {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .85rem;
    color: #4f855f;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.tour-status span {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: #55a66d;
}

.tour-date {
    color: #3f3f3f;
    font-size: 1.08rem;
    font-weight: 600;
    line-height: 1.35;
}

.tour-time {
    margin-top: .35rem;
    color: #666;
    font-size: .98rem;
}

.tour-email-cta {
    max-width: 660px;
    margin: 0 auto;
    padding: 2rem;
    text-align: center;
    background: #f6f7f8;
    border-radius: 12px;
}

.tour-email-cta h4 {
    margin: 0 0 .4rem;
}

.tour-email-cta p {
    margin: 0 0 1.25rem;
}

.tour-more-dates {
    max-width: 700px;
    margin: 1.6rem auto 0;
    color: #666;
    font-size: .92rem;
    line-height: 1.55;
    text-align: center;
}

.application-progress {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2rem;
}

.application-progress-step {
    display: flex;
    gap: 1rem;
    padding: 1.4rem;
    background: rgba(255,255,255,.88);
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,.045);
}

.application-progress-step.current {
    background: rgba(255,255,255,.94);
    box-shadow: inset 0 0 0 1px rgba(79,115,223,.22), 0 3px 10px rgba(0,0,0,.045);
}

.progress-number {
    display: flex;
    flex: 0 0 2.15rem;
    width: 2.15rem;
    height: 2.15rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e8eaed;
    color: #555;
    font-weight: 650;
}

.complete .progress-number {
    background: #e9f5ec;
    color: #55a66d;
}

.complete .progress-number .material-symbols-outlined {
    font-size: 1.45rem;
    font-variation-settings: 'FILL' 1;
}

.current .progress-number {
    background: #e8edfb;
    color: #4f73df;
}

.progress-kicker {
    margin-bottom: .3rem;
    color: #777;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .055em;
}

.current .progress-kicker {
    color: #5f73a8;
}

.progress-copy h4 {
    margin: 0 0 .45rem;
    color: #444;
}

.progress-copy p {
    margin: 0;
    line-height: 1.55;
}

.application-decision-note {
    max-width: 850px;
    margin: 2rem auto 0;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(0,0,0,.1);
    color: #555;
    font-size: .94rem;
    line-height: 1.65;
}

@media (max-width: 800px) {
    .application-confirmation-hero .narrow-column,
    .application-tour-info .narrow-column,
    .application-tour-schedule .narrow-column,
    .application-next-steps .narrow-column {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .confirmation-status {
        margin-bottom: 1.6rem;
    }

    .confirmation-intro {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding-top: 1.4rem;
    }

    .application-confirmation-hero h1 {
        margin: 0;
        padding-left: 0;
    }

    .tour-guidelines,
    .tour-date-grid,
    .application-progress {
        grid-template-columns: 1fr;
    }

    .tour-guideline {
        min-height: 0;
    }

    .tour-date-card {
        padding: 1.25rem;
    }

    .tour-email-cta {
        padding: 1.6rem 1.25rem;
    }
}


/* Application confirmation — tour information background */
.application-tour-info {
    background: #f4f5f6;
}


/* Application confirmation — tighten the transition into tour instructions */
.application-confirmation-hero .narrow-column {
    padding-bottom: 2rem;
}

.application-tour-info .narrow-column {
    padding-top: 0;
}

.application-tour-info .section-heading {
    position: relative;
    margin-top: 0;
    padding-top: 2rem;
}

.application-tour-info .section-heading::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: rgba(0,0,0,.11);
}
