/*
Theme Name: Free Association Clinic
Description: Custom theme for freeassociationclinic.com
Version: 1.3
Author: Kailash Black
*/

/*
 * Table of Contents
 *
 *  1. Reset + Box Sizing
 *  2. Base Typography
 *  3. Elements (img, hr, lists, tables, blockquote)
 *  4. Forms
 *  5. Links
 *  6. Navigation Base
 *  7. Accessibility
 *  8. Alignments
 *  9. Clearings
 * 10. Custom Button
 * 11. Site Header
 * 12. Main Navigation
 * 13. Quick Links (Social Navigation)
 * 14. Site Layout
 * 15. Entry Content Typography
 * 16. Image Layouts
 * 17. Left Anchor
 * 18. Service / Content Grid
 * 19. Pagefolds
 * 20. Sidebar + Widget Area
 * 21. Footer
 * 22. Blog / Posts
 * 23. Typography Utilities
 * 24. Curriculum
 * 25. Homepage
 * 26. Faculty / Team
 * 27. Specific Pages
 * 28. Landing Pages
 */


/* =============================================
   1. RESET + BOX SIZING
   (Eric Meyer reset, adapted from TwentyFifteen)
============================================= */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	border: 0;
	font-family: inherit;
	font-size: 100%;
	font-style: inherit;
	font-weight: inherit;
	margin: 0;
	outline: 0;
	padding: 0;
	vertical-align: baseline;
}

html {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	/* Fluid rem base — everything sized in rem scales with this.
	   8.5px floor (≤550px) → 10px at 800px → 15.4px cap (~1700px)
	   Body at 1.7rem: 14.5px → 17px → 26px. Headings scale proportionally. */
	font-size: 62.5%; /* fallback for ancient browsers */
	font-size: clamp(8.5px, calc(5.2px + 0.6vw), 15.4px);
	overflow-y: scroll;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

*,
*:before,
*:after {
	-webkit-box-sizing: inherit;
	-moz-box-sizing: inherit;
	box-sizing: inherit;
}

article, aside, details, figcaption, figure,
footer, header, main, nav, section {
	display: block;
}

ol, ul { list-style: none; }

table {
	border-collapse: separate;
	border-spacing: 0;
}

caption, th, td { font-weight: normal; text-align: left; }

fieldset { min-width: inherit; }

blockquote:before, blockquote:after,
q:before, q:after { content: ""; }

blockquote, q {
	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
	quotes: none;
}

a:focus { outline: 2px solid rgba(51, 51, 51, 0.3); }
a:hover, a:active { outline: 0; }
a img { border: 0; }


/* =============================================
   2. BASE TYPOGRAPHY
============================================= */

/* Global reset: use pt-sans for all elements (overriding browser serif defaults) */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	font-family: 'pt-sans', sans-serif;
}

html {
	scroll-behavior: smooth;
	background: white;
	-webkit-hyphens: none !important;
	-moz-hyphens: none !important;
	hyphens: none !important;
}

body,
button,
input,
select,
textarea {
	color: #333;
	font-family: 'pt-sans', sans-serif;
	font-size: 17px;   /* fallback */
	font-size: 1.7rem; /* scales with html fluid base */
	line-height: 1.647;
}

#page, body {
	background: white;
	font-family: 'pt-sans', sans-serif;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	clear: both;
	font-weight: 700;
	-webkit-hyphens: none !important;
	-moz-hyphens: none !important;
	hyphens: none !important;
}

h1, h2 {
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
}

h5 {
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	font-size: .9em;
	margin-top: 1em;
	margin-bottom: 1em;
	-webkit-hyphens: none !important;
	-moz-hyphens: none !important;
	hyphens: none !important;
}

p {
	margin-bottom: 1em;
	-webkit-hyphens: none !important;
	-moz-hyphens: none !important;
	hyphens: none !important;
	letter-spacing: .015em;
}

p:empty { display: none; }

div { hyphens: none !important; }

ol {
	-webkit-hyphens: none !important;
	-moz-hyphens: none !important;
	hyphens: none !important;
}

b, strong { font-weight: 700; }
dfn, cite, em, i { font-style: italic; }

blockquote {
	border-left: 4px solid rgba(51, 51, 51, 0.7);
	color: rgba(51, 51, 51, 0.7);
	font-size: 18px;
	font-size: 1.8rem;
	font-style: italic;
	line-height: 1.6667;
	margin-bottom: 1.6667em;
	padding-left: 0.7778em;
}

blockquote p { margin-bottom: 1.6667em; }
blockquote > p:last-child { margin-bottom: 0; }

code, kbd, tt, var, samp, pre {
	font-family: Inconsolata, monospace;
	-webkit-hyphens: none;
	-moz-hyphens: none;
	hyphens: none;
}

pre {
	background-color: rgba(0, 0, 0, 0.01);
	border: 1px solid rgba(51, 51, 51, 0.1);
	line-height: 1.2;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 0.8em;
	white-space: pre-wrap;
	word-wrap: break-word;
}

abbr[title] {
	border-bottom: 1px dotted rgba(51, 51, 51, 0.1);
	cursor: help;
}

mark, ins { background-color: #fff9c0; text-decoration: none; }

sup, sub { font-size: 75%; height: 0; line-height: 0; position: relative; vertical-align: baseline; }
sup { bottom: 1ex; }
sub { top: .5ex; }
small { font-size: 75%; }
big { font-size: 125%; }


/* =============================================
   3. ELEMENTS
============================================= */

hr {
	background-color: rgba(51, 51, 51, 0.1);
	border: 0;
	height: 1px;
	margin-top: 3em;
	margin-bottom: 3em;
}

ul { list-style: disc; }
ol { list-style: decimal; }
ul, ol { margin: 0 0 1.6em 1.3333em; }
li > ul, li > ol { margin-bottom: 0; }

dl { margin-bottom: 1.6em; }
dt { font-weight: bold; }
dd { margin-bottom: 1.6em; }

table, th, td { border: 1px solid rgba(51, 51, 51, 0.1); }

table {
	border-collapse: separate;
	border-spacing: 0;
	border-width: 1px 0 0 1px;
	margin: 0 0 1.6em;
	table-layout: fixed;
	width: 100%;
}

th { border-width: 0 1px 1px 0; font-weight: 700; }
td { border-width: 0 1px 1px 0; }
th, td { padding: 0.4em; }

img {
	-ms-interpolation-mode: bicubic;
	border: 0;
	height: auto;
	max-width: 100%;
	vertical-align: middle;
}

figure { margin: 0; }
del { opacity: 0.8; }

::-webkit-input-placeholder { color: rgba(51, 51, 51, 0.7); }
:-moz-placeholder            { color: rgba(51, 51, 51, 0.7); }
::-moz-placeholder           { color: rgba(51, 51, 51, 0.7); opacity: 1; }
:-ms-input-placeholder       { color: rgba(51, 51, 51, 0.7); }


/* =============================================
   4. FORMS
============================================= */

button,
input,
select,
textarea {
	background-color: #f7f7f7;
	border-radius: 0;
	font-size: 16px;
	font-size: 1.6rem;
	line-height: 1.5;
	margin: 0;
	max-width: 100%;
	vertical-align: baseline;
}

button, input {
	-webkit-hyphens: none;
	-moz-hyphens: none;
	hyphens: none;
	line-height: normal;
}

input, textarea {
	background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
	border: 1px solid rgba(51, 51, 51, 0.1);
	color: rgba(51, 51, 51, 0.7);
}

input:focus, textarea:focus {
	background-color: #fff;
	border: 1px solid rgba(51, 51, 51, 0.3);
	color: #333;
	outline: 0;
}

input:focus, select:focus { outline: 2px solid rgba(51, 51, 51, 0.3); }

button[disabled], input[disabled], select[disabled], textarea[disabled] {
	cursor: default;
	opacity: .5;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	background-color: #333;
	border: 0;
	color: #fff;
	cursor: pointer;
	font-size: 12px;
	font-size: 1.2rem;
	font-weight: 700;
	padding: 0.7917em 1.5em;
	text-transform: uppercase;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus {
	opacity: .9;
	outline: 0;
}

input[type="search"] { -webkit-appearance: textfield; }
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
textarea {
	padding: 0.375em;
	width: 100%;
}

textarea { overflow: auto; vertical-align: top; }

.search-form input[type="submit"],
.widget .search-form input[type="submit"] { padding: 0; }

.wp-block-search__button {
	padding: 0 10px !important;
	border-top-right-radius: 5px;
	border-bottom-right-radius: 5px;
	margin-left: 0;
	border: 1px solid black;
	transition: all .2s ease-in;
}

.wp-block-search__label { display: none; }

.nf-form-content {
	padding: 0 !important;
	margin-top: 20px !important;
}


/* =============================================
   5. LINKS
============================================= */

a {
	color: #333;
	text-decoration: none;
	transition: all .2s ease-in;
}

a:hover, a:focus {
	color: rgba(51, 51, 51, 0.7);
}


/* =============================================
   6. NAVIGATION BASE
============================================= */

.main-navigation a {
	display: block;
	padding: 0.8em 0;
	position: relative;
	text-decoration: none;
}

.main-navigation ul {
	list-style: none;
	margin: 0;
	border-bottom: 0 solid black !important;
	border-top: 0 solid black !important;
}

.main-navigation ul ul {
	display: none;
	margin-left: 0.8em;
}

.main-navigation ul .toggled-on { display: block; }

.main-navigation li {
	border-top: 1px solid rgba(51, 51, 51, 0.1);
	position: relative;
}

.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a { font-weight: 700; }

.main-navigation .nav-menu > ul > li:first-child,
.main-navigation .nav-menu > li:first-child { border-top: 0; }

.main-navigation .menu-item-has-children > a { padding-right: 48px; }

.no-js .main-navigation ul ul { display: block; }

.dropdown-toggle {
	background-color: transparent;
	border: 0;
	-webkit-box-sizing: content-box;
	-moz-box-sizing: content-box;
	box-sizing: content-box;
	height: 42px;
	padding: 0;
	position: absolute;
	text-transform: lowercase;
	top: 3px;
	right: 0;
	width: 20px;
	opacity: .6;
}


/* =============================================
   7. ACCESSIBILITY
============================================= */

.says,
.screen-reader-text {
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
}

.site .skip-link {
	background-color: #f1f1f1;
	box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2);
	color: #21759b;
	display: block;
	font: bold 14px/normal sans-serif;
	left: -9999em;
	outline: none;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: -9999em;
}

.site .skip-link:focus {
	clip-path: none;
	height: auto;
	left: 6px;
	top: 7px;
	width: auto;
	z-index: 100000;
}


/* =============================================
   8. ALIGNMENTS
============================================= */

.alignleft  { display: inline; float: left; }
.alignright { display: inline; float: right; }
.aligncenter { display: block; margin-right: auto; margin-left: auto; }

blockquote.alignleft, .wp-caption.alignleft, img.alignleft   { margin: 0.4em 1.6em 1.6em 0; }
blockquote.alignright, .wp-caption.alignright, img.alignright { margin: 0.4em 0 1.6em 1.6em; }

blockquote.aligncenter, .wp-caption.aligncenter, img.aligncenter {
	clear: both;
	margin-top: 0.4em;
	margin-bottom: 1.6em;
}

.wp-caption.alignleft,
.wp-caption.alignright,
.wp-caption.aligncenter { margin-bottom: 1.2em; }


/* =============================================
   9. CLEARINGS
============================================= */

.clear:before, .clear:after,
.site:before, .site:after,
.entry-content:before, .entry-content:after,
.comment-content:before, .comment-content:after,
.site-content:before, .site-content:after,
.nav-links:before, .nav-links:after,
.comment-navigation:before, .comment-navigation:after,
.social-navigation ul:before, .social-navigation ul:after,
.textwidget:before, .textwidget:after {
	content: "";
	display: table;
}

.clear:after,
.site:after,
.entry-content:after,
.comment-content:after,
.site-content:after,
.nav-links:after,
.comment-navigation:after,
.social-navigation ul:after,
.textwidget:after { clear: both; }


/* =============================================
   10. CUSTOM BUTTON
============================================= */

a.button {
	background-color: rgba(170,90,0,1);
	color: white;
	border: none;
	padding: 15px 30px;
	text-align: center;
	text-decoration: none;
	font-size: 18px;
	font-weight: bold;
	text-transform: uppercase;
	cursor: pointer;
	border-radius: 35px;
	transition: all 0.3s ease-in;
	display: inline-block;
	border-bottom: 0 solid rgba(0,0,0,0) !important;
}

a.button:hover,
a.button:focus {
	border-bottom: 0 solid rgba(0,0,0,0) !important;
	opacity: .7;
}


/* =============================================
   11. SITE HEADER
============================================= */

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	margin: 0;
	padding: 10px 0 0px;
	z-index: 100;
	width: 100%;
	background-color: white;
	font-family: 'itc-avant-garde-gothic-pro', sans-serif !important;
	background-size: auto 90%;
	background-repeat: no-repeat;
	background-position: 30px bottom;
	display: block;
}

.site-header .site-branding:before {
	height: 100%;
	display: block;
	content: '';
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url('/wp-content/uploads/2024/08/Free-Association-Clinic-logo.jpg');
	margin-left: 150px;
	margin-right: 20px;
	width: calc(100vw - 300px);
}
@media screen and (max-width: 799px) {
	.site-header .site-branding:before {
		width: calc(100vw - 95px);
		margin-left: 55px;
	}
}
.site-branding {
    height: 70px;
    z-index: 100;
    width: 100%;
    background-position: bottom left;
    background-color: white;
    background-size: auto 90%;
    background-repeat: no-repeat;
    background-image: url(/wp-content/uploads/2024/03/spiral.jpg);
    font-family: itc-avant-garde-gothic-pro, sans-serif !important;
    overflow: hidden;
    margin: 0px;
    border-bottom: 7px solid rgb(170, 90, 0);
}

.site-branding img {
	width: 100%;
	opacity: 0;
	height: 100%;
}

.custom-logo {
	max-height: 185px;
	width: auto;
}

.site-description { display: none; }

/* Transparent overlay link that makes the whole header logo area clickable */
a.big-home-button {
	width: 100%;
	position: absolute;
	top: 0;
	height: 90px;
	z-index: 100;
	max-width: calc(100vw - 200px);
}

/* Page-level entry header (inside articles, not the site header) */
header.page-header {
	margin: 0 !important;
	padding: 0 !important;
	border-left: none !important;
	box-shadow: none;
}

header.page-header h1 {
	margin-left: 0;
	margin-bottom: 1em;
}

@media screen and (max-width: 799px) {
	.site-header {
		height: 55px;
		padding: 0;
		border-bottom: 4px solid rgba(194,58,37,1);
		background: none;
	}
	.site-header:before {
		margin-left: 0;
		background-image: url('https://freeassociationclinic.com/wp-content/uploads/2024/08/FAC-Banner-logo-mobile.png');
		background-repeat: no-repeat;
		width: calc(100vw - 60px);
	}
	a.big-home-button {
		height: 60px;
		max-width: calc(100vw - 80px);
	}
	.custom-logo { max-height: 84px; }
}

/* WordPress admin bar pushes the fixed masthead down when logged in */
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}


/* =============================================
   12. MAIN NAVIGATION
============================================= */

.main-navigation {
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	text-transform: uppercase !important;
	letter-spacing: .1em;
	margin: 0 !important;
}

.menu-primary-menu-container > ul > li a {
	font-size: .9em;
	letter-spacing: .019em !important;
}

/* Parent-only nav item — not a real link */
#menu-item-1519 > a { pointer-events: none; }

@media screen and (max-width: 799px) {
	.main-navigation { letter-spacing: .07em; }

	#site-navigation {
		margin-bottom: 20px;
		/* position: fixed; */
		top: 55px;
		background: white;
		width: 100%;
		left: 0;
		max-height: 0;
		overflow: hidden;
		transition: all .5s ease-in;
		padding: 0 15px;
	}

	#site-navigation:hover,
	#site-navigation:focus,
	#site-navigation.toggled-on { max-height: 1000px; }

	/* Hamburger icon via CSS pseudo-element */
	#site-navigation:before {
		width: 50px;
		height: 68px;
		background-image: url('/wp-content/uploads/2025/02/hamburger_icon.webp');
		background-size: 60%;
		background-position: center;
		background-repeat: no-repeat;
		opacity: .7;
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		z-index: 1000;
		cursor: pointer;
		transition: all .2s ease-in;
	}

	#site-navigation:hover:before,
	#site-navigation:focus:before,
	#site-navigation.toggled-on:before {
		background-image: url('/wp-content/uploads/2025/02/hamburger_icon-x.webp');
	}

	#site-navigation:focus:before { pointer-events: none; }

	/* Hamburger button — transparent hit area over the ::before icon */
	.secondary-toggle {
		position: absolute;
		top: 0;
		right: 0;
		width: 50px;
		height: 68px;
		background: transparent;
		border: none;
		padding: 0;
		margin: 0;
		cursor: pointer;
		z-index: 1001;
	}

	/* Dropdown arrow — match desktop appearance */
	button.dropdown-toggle {
		background: transparent;
		border: none;
		color: currentColor;
		font-size: .7em;
		font-weight: 400;
		padding: 0 4px;
		cursor: pointer;
		vertical-align: middle;
		line-height: inherit;
	}

	#duplicated-main-menu { display: none; }

	#menu-quick-links:before { padding-bottom: 10px; }
}

@media screen and (min-width: 800px) {
	/* Nav bar sits in normal flow inside the fixed #masthead */
	.menu-primary-menu-container {
		padding-left: 15px;
		padding-right: 15px;
	}

	.menu-primary-menu-container a {
		padding: 10px 5px !important;
		font-weight: 800;
		white-space: nowrap;
	}

	/* Override base .9em — keep nav compact so items fit on one line */
	.menu-primary-menu-container > ul > li a { font-size: .75em; }

	.menu-primary-menu-container #menu-item-6 a {
		width: -webkit-max-content;
		width: -moz-max-content;
		width: max-content;
	}

	.menu-primary-menu-container > ul {
		display: flex;
		justify-content: space-around;
	}

	/* Dropdown submenus expand on hover */
	.menu-primary-menu-container ul.sub-menu {
		display: block;
		text-transform: none !important;
		margin: 0;
		position: absolute;
		height: 0;
		max-height: 0;
		overflow: hidden;
		min-width: 13em;
		transition: all .5s ease-in;
		background-color: white;
		flex-basis: 100%;
		top: 100%;
	}

	.menu-primary-menu-container > ul li:hover ul.sub-menu {
		height: auto;
		max-height: 600px;
	}

	.main-navigation .nav-menu > .current-menu-item > a {
		font-weight: 800;
		border-bottom: 2px solid rgba(0,0,0,.2);
		margin: 10px 10px !important;
		padding: 0 !important;
	}

	.sub-menu li.current-menu-item > a { font-weight: 400 !important; }

	.menu-primary-menu-container > ul > li {display: flex;flex-wrap: wrap;}

	.menu-primary-menu-container button.dropdown-toggle {
		position: static;
		background: transparent;
		color: currentColor;
		/* padding: 0 0 0 3px; */
		font-size: .7em;
		font-weight: 400;
		text-transform: none;
		vertical-align: middle;
		line-height: 3.7rem;
		border: none;
	}
}


/* =============================================
   13. QUICK LINKS (SOCIAL NAVIGATION)
============================================= */

.social-navigation { padding-left: 0; margin: 0; }

/* Hide Genericons pseudo-element (we use image-based social icons in footer) */
.social-navigation a:before { display: none; }

@media screen and (max-width: 799px) {
	#social-navigation {
		padding-left: 0;
		font-size: 1.2em;
	}
	#social-navigation a {
		padding: 10px 0;
		border-top: 1px solid rgba(51, 51, 51, 0.1);
	}
}


/* =============================================
   14. SITE LAYOUT
============================================= */

#page {
	display: flex;
	flex-direction: column;
}

.site { max-width: unset; }

/* Centered content column (max 750px, full-width on mobile) */
#content {
	width: 73%;
	margin: auto;
	max-width: 94%;
}

.site-main { padding: 0 !important; }

/* JS sets --masthead-h to the actual rendered masthead height */
#primary { margin-top: var(--masthead-h, 160px); }

.hentry {
	background-color: #fff;
	padding-top: 0;
	position: relative;
	margin: 0 !important;
	box-shadow: none !important;
}

/* Hide post titles (pages use custom headings inside entry-content) */
.entry-title,
.site-info { display: none; }

.entry-content { padding: 0; padding-bottom: 8%; }

.entry-footer { display: none; }

/* Hide hamburger on desktop — only needed on mobile */
@media screen and (min-width: 800px) {
	.secondary-toggle { display: none; }
}

@media screen and (max-width: 799px) {
	#content {
		width: 100%;
		margin-top: 70px;
	}
	#primary {
		margin-top: 0px !important;
		z-index: 1;
	}
	#secondary {z-index: 1000;}
	#masthead { background: white; }
	.site-header {z-index: 999;}
	.hentry { z-index: 1 !important; }
}

#block-2 { padding: 0 40px; }

@media screen and (min-width: 1600px) {
	#content { width: 70%; }
}


/* =============================================
   15. ENTRY CONTENT TYPOGRAPHY
============================================= */

/* h1 — avant-garde, centered, uppercase */
.entry-content h1, .entry-summary h1, .page-content h1, .comment-content h1 {
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	text-align: center;
	text-transform: uppercase;
	font-size: 39px;
	font-size: 3.9rem;
	letter-spacing: .05em;
	line-height: 1.2308;
	margin-top: 1.641em;
	margin-bottom: 0.8205em;
}

/* h2 — same treatment */
.entry-content h2, .entry-summary h2, .page-content h2, .comment-content h2 {
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	text-align: center;
	text-transform: uppercase;
	font-size: 32px;
	font-size: 3.2rem;
	letter-spacing: .05em;
	line-height: 1.25;
	margin-top: 2em;
	margin-bottom: 1em;
}

/* h3 — centered subheading */
.entry-content h3, .entry-summary h3, .page-content h3, .comment-content h3 {
	text-align: center;
	font-size: 27px;
	font-size: 2.7rem;
	line-height: 1.1852;
	margin-top: 2.3704em;
	margin-bottom: 1.1852em;
}

/* h4 — centered subheading */
.entry-content h4, .entry-summary h4, .page-content h4, .comment-content h4 {
	text-align: center;
	font-size: 22px;
	font-size: 2.2rem;
	line-height: 1.4545;
	margin-top: 2.9091em;
	margin-bottom: 1.4545em;
}

/* h5 — centered, uppercase label; font-size controlled by global h5 rule */
.entry-content h5, .entry-summary h5, .page-content h5, .comment-content h5 {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	line-height: 1.4;
	margin-top: 2.8em;
	margin-bottom: 1.4em;
}

/* h6 — uppercase label */
.entry-content h6, .entry-summary h6, .page-content h6, .comment-content h6 {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 19px;
	font-size: 1.9rem;
	line-height: 1.2632;
	margin-top: 3.3684em;
	margin-bottom: 1.6842em;
}

/* First heading in a content area gets no extra top margin */
.entry-content > h1:first-child,
.entry-content > h2:first-child,
.entry-content > h3:first-child,
.entry-content > h4:first-child,
.entry-content > h5:first-child,
.entry-content > h6:first-child,
.entry-summary > h1:first-child,
.entry-summary > h2:first-child,
.entry-summary > h3:first-child,
.entry-summary > h4:first-child,
.entry-summary > h5:first-child,
.entry-summary > h6:first-child,
.page-content > h1:first-child,
.page-content > h2:first-child,
.page-content > h3:first-child,
.page-content > h4:first-child,
.page-content > h5:first-child,
.page-content > h6:first-child,
.comment-content > h1:first-child,
.comment-content > h2:first-child,
.comment-content > h3:first-child,
.comment-content > h4:first-child,
.comment-content > h5:first-child,
.comment-content > h6:first-child { margin-top: 0; }

/* Links inside content get an underline */
.entry-content a,
.entry-summary a,
.page-content a,
.comment-content a { border-bottom: 1px solid #333; }

.entry-content a:hover,
.entry-content a:focus,
.entry-summary a:hover,
.entry-summary a:focus,
.page-content a:hover,
.page-content a:focus,
.comment-content a:hover,
.comment-content a:focus { border-bottom: 0; }

.entry-content .head-with-sub { margin-bottom: 0; }
.entry-content .subhead { margin-top: 10px; }

h2:first-child { margin-top: 0 !important; }

@media screen and (max-width: 799px) {
	.entry-content, .entry-summary { padding: 0 3.5% !important; }
	.quote { width: 100%; }
}


/* =============================================
   15a. RESPONSIVE HEADING SIZES
   Desktop sizes are the defaults (set in section 15).
   This block scales them down for mobile.
============================================= */

@media screen and (max-width: 799px) {
	.entry-content h1, .entry-summary h1, .page-content h1, .comment-content h1 {
		font-size: 1.4em;
		line-height: 1.1538;
		margin-top: 1.8462em;
		margin-bottom: 0.9231em;
	}
	.entry-content h2, .entry-summary h2, .page-content h2, .comment-content h2 {
		font-size: 1.4em;
		line-height: 1.3636;
		margin-top: 2.1818em;
		margin-bottom: 1.0909em;
	}
	.entry-content h3, .entry-summary h3, .page-content h3, .comment-content h3 {
		font-size: 18px;
		font-size: 1.8rem;
		line-height: 1.3333;
		margin-top: 2.6667em;
		margin-bottom: 1.3333em;
	}
	.entry-content h4, .entry-summary h4, .page-content h4, .comment-content h4 {
		font-size: 2rem;
		line-height: 1.2;
		margin-top: 3.2em;
		margin-bottom: 1.6em;
	}
	/* h5 font-size controlled by global h5 rule */
	.entry-content h5, .entry-summary h5, .page-content h5, .comment-content h5 {
		line-height: 1.2;
		margin-top: 3.2em;
		margin-bottom: 1.6em;
	}
	.entry-content h6, .entry-summary h6, .page-content h6, .comment-content h6 {
		font-size: 15px;
		font-size: 1.5rem;
		line-height: 1.2;
		margin-top: 3.2em;
		margin-bottom: 1.6em;
	}
}


/* =============================================
   16. IMAGE LAYOUTS
============================================= */

.img-sidewrap {
	display: flex;
	margin-top: 40px;
	max-width: unset !important;
	justify-content: center;
}

.img-sidewrap-regmargins { margin-bottom: 1em; margin-top: 0; }
.img-sidewrap-regmargins p { margin-bottom: 0; }

.img-sidewrap:nth-child(even) .img-panel { margin-right: 25px; }
.img-sidewrap:nth-child(odd) .img-panel { order: 2; margin-left: 25px; }

.img-panel {
	min-width: 200px;
	background-size: cover;
	background-position: center;
}

.img-sidewrap h4 { text-align: left; margin-top: 10px; }

.img-floatwrap-outer {
	display: flex;
	flex-wrap: nowrap;
	width: 100%;
	margin-top: 20px;
}
.img-floatwrap-outer h4,
.img-floatwrap-outer h5,
.img-floatwrap-outer p {
	margin: 0;
	text-align: left;
}
.img-floatwrap-outer h4,
.img-floatwrap-outer h5 {
	margin-bottom: .4rem;
}

.img-floatwrap-outer h5 {
	letter-spacing: .2em;
	font-size: .9em;
}

.img-rightwrap {
	background-size: cover;
	background-position: center;
	background-color: rgba(170,90,0,0.07);
	min-width: 200px;
	order: 100;
	margin-left: 30px;
	min-height: unset;
}

.img-leftwrap {
	order: 0;
	width: 140px;
	min-width: 140px;
	background-size: cover;
	background-position: center;
	margin-right: 20px;
	background-color: rgba(170,90,0,0.07);
}

/* Text content alongside floated image */
.floatwrap-text {
	flex: 1;
	min-width: 0;
}

.img-floatwrap-outer .img-rightwrap {
	width: 38%;
	flex-shrink: 0;
	min-height: 260px;
}

.img-floatwrap-outer .floatwrap-text {
	flex: 1;
	min-width: 0;
}

.img-floatwrap-outer .floatwrap-text p{
	margin-bottom: 0;
}

@media screen and (max-width: 799px) {
	.img-leftwrap {
		width: 80px;
		min-width: 80px;
		height: 100px;
		margin: auto;
		margin-bottom: 10px;
	}
	.img-rightwrap {
		order: 1;
		width: 100%;
		min-height: 100vw;
		margin-left: 0;
		min-width: unset;
	}
	.img-floatwrap-outer {
		flex-direction: column;
	}
	.img-floatwrap-outer p,
	.img-floatwrap-outer h4,
	.img-floatwrap-outer h5 {
		text-align: center;
	}
	.img-floatwrap-outer .img-rightwrap {
		width: 100%;
		min-height: 100vw;
		margin-top: 10px;
	}
}


/* =============================================
   17. LEFT ANCHOR (desktop sub-navigation)
============================================= */

.left-anchor {
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	display: none;
	position: fixed;
	width: 250px;
	left: 2%;
	top: 400px;
	line-height: 1.4em;
}

.left-anchor > a {
	font-weight: 700;
	border-bottom: 0 solid rgba(0,0,0,0);
	margin-bottom: 5px;
	display: block;
}

.left-anchor > div {
	font-weight: 500;
	margin-left: 1em;
}

.left-anchor > div br,
.left-anchor p { display: none; }

.left-anchor > div a {
	margin-bottom: 5px;
	display: block;
	border-bottom: 0 solid rgba(0,0,0,0);
	position: relative;
	padding-left: 1em;
}

.left-anchor > div a:before {
	content: '>';
	display: block;
	position: absolute;
	left: 0;
	opacity: .4;
}


/* =============================================
   18. SERVICE / CONTENT GRID
============================================= */

.grid-wrap {
	display: flex;
	flex-wrap: wrap;
	overflow: visible;
	position: relative;
	justify-content: space-between;
	margin-top: 40px;
}

.grid-item {
	width: 48%;
	align-self: stretch;
	text-align: center;
	display: flex;
	flex-direction: column;
	position: relative;
	padding: 10px 10px 55px;
	padding-top: 20px;
	margin-bottom: 25px;
	border-radius: 20px;
	border: solid 2px rgba(0,0,0,.05);
	box-shadow: 0px 10px 20px rgba(0,0,0,.08);
	transform: translate(0, 0);
	transition: all .2s ease-in;
}

.grid-item:hover,
.grid-item:focus {
	box-shadow: 0px 10px 35px rgba(0,0,0,.12);
	transform: translate(0, -1px);
}

.grid-item h5 { margin-top: 10px; }

.grid-item p:last-child {
	position: absolute;
	bottom: 10px;
	width: calc(100% - 20px);
	pointer-events: none;
}

.grid-item p:last-child a { vertical-align: bottom; }

.grid-icon {
	height: 80px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-bottom: 0;
}

/* All grid-item children non-interactive; cover link handles the click */
.grid-item > *:not(p.grid-cover-link-p) { pointer-events: none; }

p.grid-cover-link-p {
	margin: 0;
}

a.grid-cover-link {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	border-bottom: 0 solid rgba(0,0,0,0) !important;
}

.grid-button {
	margin-top: 0;
	color: rgba(170,90,0,.8);
	border-color: rgba(170,90,0,1) !important;
	font-size: 1.1em;
	pointer-events: none;
	font-weight: 600 !important;
}

@media screen and (max-width: 799px) {
	.grid-item { width: 100%; }
}


/* =============================================
   19. PAGEFOLDS (full-bleed alternating sections)
============================================= */

.pagefold-wrap {
	display: flex;
	justify-content: center;
}

.pagefold-wrap:nth-child(even) {
	background-color: rgba(170,90,0,.05);
}

.pagefold-wrap > div {
	max-width: 800px;
	margin: 50px;
}

.pagefold-wrap > div > p {
	text-align: center;
}
@media screen and (max-width: 799px) {
	.pagefold-wrap > div {
		margin: 1.5em;
	}
}


/* =============================================
   20. SIDEBAR + WIDGET AREA
============================================= */

/* #secondary acts as the footer widget area in this layout */
#secondary,
.sidebar {
	position: relative;
	float: unset;
	order: 100;
	width: 100%;
	margin: auto;
	max-width: 94%;
	box-shadow: none !important;
}

/* Full-bleed breakout: widget-area fills full viewport width (up to 1600px)
   without inheriting the 73% #content constraint.
   Applied here rather than #secondary to avoid breaking the fixed-position nav
   (CSS transforms on an ancestor break position:fixed on descendants). */
#widget-area {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 40px;
	margin-top: 0;
	width: 100vw;
	max-width: 1600px;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	border-top: 2px solid rgba(0,0,0,.1);
	padding-top: 40px;
}
@media screen and (max-width: 799px) {
	#widget-area {
		padding: 10px;
		text-align: center;
	}
}

#widget-area .textwidget { font-size: 1em; }

#widget-area > * {
	flex: 1 1 0;
	margin-bottom: 30px;
	padding: 0 15px;
	display: flex;
	justify-content: center;
	color: rgba(0,0,0,.9);
}

#widget-area > .widget_search {
	display: block;
	max-width: 500px !important;
	margin-top: 10px;
}

/* Last 3 widgets go full-width and centered */
#widget-area > *:nth-last-child(-n+3) {
	flex: 1 1 100%;
	width: 100%;
	text-align: center;
	max-width: unset;
	padding: 0;
}

.widget-title { display: none; }

@media screen and (max-width: 799px) {
	#widget-area > * {
		flex: 1 1 100%;
		max-width: unset;
		padding: 0;
		display: block;
	}
}

.widget {
	color: rgba(51, 51, 51, 0.7);
	margin: 0 auto;
	width: 100%;
	word-wrap: break-word;
}

.widget > :last-child,
.widget > nav > :last-child { margin-bottom: 0; }

.social-links-footer {
	display: flex;
	justify-content: space-between;
	width: 120px;
	margin: auto;
	margin-bottom: 0;
}

.textwidget a { border-bottom: 1px solid #333; }
.textwidget a:hover,
.textwidget a:focus { border-bottom: 0; }
.textwidget a:has(img),
.textwidget a:has(svg) { border-bottom: 0; }

.footer-menu-column p { margin-bottom: 5px; }



/* =============================================
   22. BLOG / POSTS
============================================= */

article a.post-thumbnail {
	max-height: 300px;
	overflow: hidden;
	display: flex;
}

article a.post-thumbnail img {
	vertical-align: middle;
	display: block;
	height: auto;
	object-fit: cover;
}

article .entry-content p img { margin-top: 20px; }

.post-thumbnail {
	border: 0;
	display: block;
	margin-bottom: 2.4em;
}

.post-thumbnail img { display: block; margin: 0 auto; }

a.post-thumbnail:hover,
a.post-thumbnail:focus { opacity: 0.85; }

body.search-results article { margin-bottom: 20px !important; }

.post-navigation {
	background-color: #fff;
	border-top: 1px solid rgba(51, 51, 51, 0.1);
	font-weight: 700;
}

.post-navigation a {
	display: block;
	padding: 3.8461% 7.6923%;
}

.pagination {
	background-color: #fff;
	border-top: 1px solid rgba(51, 51, 51, 0.1);
}

.pagination .nav-links {
	min-height: 3.2em;
	position: relative;
	text-align: center;
}

.pagination .page-numbers {
	display: none;
	line-height: 3.2em;
	padding: 0 0.6667em;
}

.pagination .page-numbers.current { text-transform: uppercase; }
.pagination .current { display: inline-block; font-weight: 700; }

.pagination .prev,
.pagination .next {
	background-color: #333;
	color: #fff;
	display: inline-block;
	height: 48px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 48px;
}

.pagination .prev { left: 0; }
.pagination .next { right: 0; }

.pagination .prev:hover,
.pagination .prev:focus,
.pagination .next:hover,
.pagination .next:focus { background-color: rgba(51, 51, 51, 0.7); }


/* =============================================
   23. TYPOGRAPHY UTILITIES
============================================= */

.two-columns {
	column-count: 2;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	break-inside: avoid-column;
}

@media screen and (max-width: 799px) {
	.two-columns { column-count: 1; }
}

@media screen and (max-height: 725px) {
	.pull-quote { display: none !important; }
}

@media screen and (max-height: 980px) {
	.pull-quote img.too-tall, .too-tall { display: none !important; }
}


/* =============================================
   24. CURRICULUM
============================================= */

.curriculum-columns p { margin-bottom: 8px; }
.curriculum-columns { text-align: justify; }

.curriculum-list {
	overflow-wrap: normal;
	display: inline-block;
	width: 47%;
	vertical-align: top;
	text-align: left;
	font-weight: 800;
}

.curriculum-list > b { display: block; }
.curriculum-list span { font-weight: 400; }
.curriculum-list span.curriculum-title { font-style: italic; }

@media screen and (max-width: 599px) {
	ol.curriculum-list { width: 100%; }
}


/* =============================================
   25. HOMEPAGE
============================================= */

.page-id-1292 {
	max-width: 100vw !important;
	overflow-x: hidden;
}

.page-id-1292 .entry-content {
	min-height: 100vh;
	padding: 0 !important;
}

.page-id-1292 #content {
	width: 100%;
	margin-left: 0;
	left: 0;
	right: 0;
	top: 0;
	min-height: 100vh;
	max-width: unset;
}

.page-id-1292 #primary { margin-top: 0; }

.post-1292 { padding-top: 0; }

.home .entry-content { margin-top: 0; }

.homepage-frame {
	background-image: url('/wp-content/uploads/2025/01/labyrinth-copy.webp');
	background-size: cover;
	background-position: top;
	margin-top: 130px;
	height: calc(100vh - 140px);
	width: 100vw !important;
	max-width: 100% !important;
	position: relative;
	background-repeat: no-repeat;
}

.homepage-frame h4 {
	font-family: "Dancing Script", serif;
	font-optical-sizing: auto;
	font-style: normal;
	position: absolute;
	text-align: center;
	margin-left: 0;
	width: 100%;
	margin-top: 0;
	font-weight: 800;
	top: 10px;
	left: 0;
	color: black;
	font-size: 1.8em;
}

.homepage-frame > div {
	text-align: center;
	position: absolute;
	width: 100%;
	bottom: 0;
	background-color: white;
}

.homepage-frame > div > a.button { margin: 20px; }
.homepage-frame > div > br { display: none; }

@media screen and (max-width: 799px) {
	.homepage-frame {
		background-position: center top;
		height: 85vh;
		margin-top: 0;
	}
	.homepage-frame h4 {
		margin-left: 0;
		text-align: center;
	}
	.homepage-frame > div > a.button { margin: 15px; }
}


/* =============================================
   26. FACULTY / TEAM
============================================= */

.bio-wrapper {
	overflow: scroll;
	height: 100%;
	padding-bottom: 30px;
}

#faculty-biographies-wrapper {
	text-align: justify;
	text-align-last: center;
}

.faculty-list-links {
	text-decoration: none;
	border-bottom: 0 solid rgba(0,0,0,0) !important;
}

.faculty-list-links:hover,
.faculty-list-links:focus { opacity: .8; }

.team-portrait-container {
	width: 32%;
	display: inline-block;
	position: relative;
	overflow: hidden;
	margin-bottom: 1%;
	transition: all .3s ease-in;
	box-shadow: 0 0 5px rgba(0,0,0,0);
	filter: grayscale(1);
}

.team-portrait-container:before {
	content: '[+]';
	position: absolute;
	font-size: 25px;
	right: 15px;
	top: 8px;
	opacity: .8;
	color: white;
	pointer-events: none;
	text-shadow: 1px 1px rgb(0 0 0 / 50%);
}

.team-portrait-container > a > p,
.team-portrait-container > p { display: none; }

.team-portrait-container:hover,
.team-portrait-container:focus { filter: grayscale(0); }

@media screen and (max-width: 1600px) {
	.team-portrait-container { width: 49%; }
}

.has-bio { cursor: pointer; }

.has-bio:hover,
.has-bio:focus {
	box-shadow: 0 5px 25px rgba(0,0,0,.3);
	transform: translate(0, -1px);
}

.bio-headshot {
	height: 170px;
	margin-bottom: 10px;
	margin-right: 30px;
	margin-top: 22px;
	float: left;
}

@media screen and (max-height: 970px) {
	.bio-headshot { height: 131px; }
}

.team-portrait-container.placeholder { opacity: 0; }

.team-portrait-img {
	background: grey;
	width: 100%;
	padding-bottom: 100%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.team-caption-container {
	position: absolute;
	bottom: 0;
	background-color: rgba(255,255,255,1);
	width: 100%;
	transition: all .4s ease-in;
	pointer-events: none;
}

.team-caption-container:hover,
.team-caption-container:focus { background-color: rgba(255,255,255,.85); }

.team-caption-container p {
	font-size: 14px;
	margin: 0 6px;
	padding: 0;
	font-weight: 800;
}

.team-caption-container p:last-child { padding-bottom: 3px; }
.team-caption-container p:empty { display: none; }

.team-caption-container p span {
	display: block;
	font-weight: 500;
}

.team-caption-container a {
	opacity: 1;
	border-bottom: 0px;
	transition: all 0.2s ease-in;
	line-height: .9em;
}

.team-caption-container a:hover,
.team-caption-container a:focus { opacity: 0.7; }

@media screen and (max-width: 970px) {
	.team-caption-container p { margin: 0; }
	.team-caption-container .bio-email-link {
		font-size: .65em;
		text-align: left;
		display: block;
		float: left;
		margin: 10px 0;
	}
	.team-caption-container .bio-email-link span { display: none; }
}

.staff-panel-links {
	display: none;
	width: 100%;
	height: 100%;
	position: absolute;
	opacity: 0;
	top: 0;
	left: 0;
}

.has-bio .staff-panel-links { display: block; }

/* Bio popup panel — pure CSS using :target */
.popup {
	transform: translate(100px,0);
	position: fixed;
	max-width: 32%;
	max-height: calc(100vh - 100px);
	height: 100%;
	padding: 3%;
	top: 0;
	right: 0;
	font-size: 16px;
	background: rgba(255,255,255,.95);
	visibility: hidden;
	opacity: 0;
	-webkit-transition: all .5s, visibility 0s linear .5s;
	transition: all .5s, visibility 0s linear .5s;
	z-index: 999999;
	box-shadow: 0 0 40px rgb(0 0 0 / 80%);
}

@media screen and (max-height: 970px) {
	.popup {
		max-width: 90%;
		top: 80px;
	}
}

.popup:target {
	transform: translate(0,0);
	visibility: visible;
	opacity: 1;
	-webkit-transition-delay: 0s;
	transition-delay: 0s;
}

.popup-close {
	position: absolute;
	padding: 10px;
	max-width: 500px;
	border-radius: 10px;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	background: rgba(255,255,255,.9);
}

.popup .close {
	position: absolute;
	left: -13px;
	top: 4%;
	width: 30px;
	height: 30px;
	text-align: center;
	background-color: white;
	border-radius: 50%;
	padding: 5px;
	text-decoration: none;
	color: #000;
	font-size: 2.2em;
	line-height: .5em;
	font-weight: bold;
	transition: all .3s ease-in;
}

.popup .close:hover { color: #c01a29; }

.close-popup {
	background: rgba(0,0,0,.7);
	cursor: default;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0;
	visibility: hidden;
	-webkit-transition: all .5s, visibility 0s linear .5s;
	transition: all .5s, visibility 0s linear .5s;
}

.popup:target + .close-popup {
	opacity: 1;
	visibility: visible;
	-webkit-transition-delay: 0s;
	transition-delay: 0s;
}


/* =============================================
   27. SPECIFIC PAGES
============================================= */

/* Articles & Links page */
.page-id-275 .entry-content img {
	display: block;
	margin-top: 20px !important;
	margin-left: 0 !important;
}

.page-id-275 .entry-content h5 { margin-bottom: 10px !important; }
.page-id-275 .entry-content ul { margin-left: 1.2em; }
.page-id-275 .entry-content li { margin-bottom: 10px; }

p.article-pdfs {
	font-weight: 800;
	margin-bottom: 7px;
}


/* =============================================
   28. LANDING PAGES
============================================= */

body:has(.lp-page) { overflow-x: hidden; }

/* Make pagefold sections go full-bleed within the centered content column */
.lp-page .pagefold-wrap {
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

/* --------------------------------------------------
   Hero — full-bleed gradient banner
   -------------------------------------------------- */
.lp-hero {
	background: linear-gradient(155deg, rgba(170,90,0,0.1) 0%, rgba(255,245,230,0.55) 45%, rgba(255,255,255,0.2) 100%);
	border-top: 5px solid rgba(170,90,0,1);
	text-align: center;
	padding: 70px 30px 65px;
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	min-height: 400px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background-position: 0 80%;
	background-size: cover;
}

.lp-hero::after {
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.1);
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	pointer-events: none;
	z-index: -1;
}

.lp-hero h1 {
	font-size: 1.7em !important;
	margin-bottom: 12px !important;
	margin-top: 0 !important;
	line-height: 1.25;
	color: white;
}

.lp-hero-sub {
	font-size: 1em;
	color: white;
	margin-bottom: 32px;
	font-style: italic;
	letter-spacing: .04em;
	font-weight: 600;
}

@media screen and (max-width: 799px) {
	.lp-hero { padding: 40px 20px 50px; }
	.lp-hero h1 { font-size: 1.2em !important; }
}

/* --------------------------------------------------
   Checklist — amber checkmark bullets (requires Font Awesome)
   -------------------------------------------------- */
.lp-checklist {
	list-style: none;
	padding: 0;
	margin: 0 auto 1em;
	text-align: left;
	display: inline-block;
}

.lp-checklist li {
	padding: 0.4em 0 0.4em 0.9em;
	position: relative;
	font-size: 1em;
	line-height: 1.45;
}

.lp-checklist li::before {
	content: '•';
	font-family: FontAwesome;
	position: absolute;
	left: 0;
	top: 0.5em;
	color: rgba(170,90,0,0.85);
	font-size: 0.85em;
}

/* --------------------------------------------------
   Steps — numbered process cards in a row
   -------------------------------------------------- */
.lp-steps {
	display: flex;
	flex-wrap: wrap;
	margin: 20px -10px 0;
	justify-content: center;
}

.lp-step {
	flex: 1;
	min-width: 180px;
	max-width: 230px;
	margin: 10px;
	text-align: center;
	padding: 28px 18px 22px;
	border-radius: 18px;
	border: 2px solid rgba(170,90,0,0.12);
	background: white;
	box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}

.lp-step-num {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(170,90,0,1);
	color: white;
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	font-size: 1.1em;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px;
}

.lp-step h5 {
	margin: 0 0 10px !important;
	font-size: 0.82em !important;
	letter-spacing: .18em;
}

.lp-step p {
	font-size: 0.9em;
	margin: 0;
	color: rgba(0,0,0,0.65);
	text-align: center;
}

@media screen and (max-width: 799px) {
	.lp-step { max-width: 100%; flex-basis: 100%; }
}

/* --------------------------------------------------
   Icon row — icon + label + text for practical details
   -------------------------------------------------- */
.lp-icon-row {
	display: flex;
	flex-wrap: wrap;
	margin: 13px -12px 0;
	justify-content: center;
}

.lp-icon-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex: 1;
	min-width: 200px;
	max-width: 48%;
	margin: 12px;
	padding: 15px;
}

.lp-icon-item svg {
	display: block;
	width: 3.8em;
	height: 3.8em;
	margin: 0 auto 0.8em;
}

.lp-icon-item .fa {
	font-size: 3.8em;
	color: rgba(170,90,0,0.85);
	text-align: center;
	margin: 0 auto 0.8em;
	display: block;
}

.lp-icon-item p {
	margin: 0;
	font-size: 0.95em;
	text-align: center !important;
}

.lp-icon-item strong {
	display: block;
	margin-bottom: 5px;
}

@media screen and (max-width: 599px) {
	.lp-icon-item { flex-basis: 100%; max-width: 100%; }
}

/* --------------------------------------------------
   Two columns — side-by-side info cards
   -------------------------------------------------- */
.lp-two-col {
	display: flex;
	flex-wrap: wrap;
	margin: 13px -12px 0;
}

.lp-two-col > div {
	flex: 1;
	min-width: 220px;
	margin: 12px;
	background: white;
	border-radius: 18px;
	padding: 28px 22px;
	border: 2px solid rgba(170,90,0,0.12);
	box-shadow: 0 4px 16px rgba(0,0,0,0.05);
}

.lp-two-col .fa {
	font-size: 1.8em;
	color: rgba(170,90,0,0.85);
	margin-bottom: 12px;
	display: block;
}

.lp-two-col h5 { margin-top: 0 !important; text-align: left !important; }
.lp-two-col p  { margin: 0; font-size: 0.95em; text-align: left !important; }

/* --------------------------------------------------
   FAQ accordion — pure CSS, uses <details>/<summary>
   -------------------------------------------------- */
.lp-faq {
	margin-top: 20px;
	text-align: left;
}

.lp-faq details {
	border-bottom: 1px solid rgba(0,0,0,0.1);
	padding: 15px 0;
}

.lp-faq details:first-child {
	border-top: 1px solid rgba(0,0,0,0.1);
}

.lp-faq summary {
	cursor: pointer;
	font-weight: 700;
	font-family: 'itc-avant-garde-gothic-pro', sans-serif;
	font-size: 0.95em;
	letter-spacing: .03em;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.lp-faq summary::-webkit-details-marker { display: none; }

.lp-faq summary::after {
	content: '\f067';
	font-family: FontAwesome;
	font-size: 0.7em;
	color: rgba(170,90,0,0.8);
	flex-shrink: 0;
	margin-left: 12px;
}

.lp-faq details[open] > summary::after { content: '\f068'; }

.lp-faq details > p {
	margin: 12px 0 4px;
	color: rgba(0,0,0,0.72);
	font-size: 0.95em;
	text-align: left !important;
}

/* --------------------------------------------------
   Service grid icon (Font Awesome inside .grid-item)
   -------------------------------------------------- */
.lp-grid-icon {
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.2em;
	color: rgba(170,90,0,0.75);
}

.lp-grid-icon svg {
	width: 100px;
	margin-bottom: 10px;
	opacity: .8;
}

/* --------------------------------------------------
   CTA band — full-bleed amber closing section
   -------------------------------------------------- */
.lp-cta-band {
	background: rgba(170,90,0,1);
	text-align: center;
	padding: 65px 30px;
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	margin-bottom: -3%;
}

.lp-cta-band h2 {
	color: white !important;
	margin-bottom: 28px !important;
}

.lp-cta-band a.button {
	background: white;
	color: rgba(170,90,0,1) !important;
}

.lp-cta-band a.button:hover,
.lp-cta-band a.button:focus {
	background: rgba(255,255,255,0.88);
	opacity: 1;
}