/*
Theme Name: Arise and Thrive
Theme URI: https://ariseandthrivemhaws.com/
Author: Arise and Thrive Mental Health and Wellness Services
Description: A calm, accessible block theme for Arise and Thrive Mental Health and Wellness Services in Oklahoma City. Every page, the header, the footer and the menu are editable in the WordPress Site Editor.
Version: 1.0.1
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: arise-thrive
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
:where(.wp-site-blocks) *:focus-visible { outline: 2px solid var(--wp--preset--color--gold-deep); outline-offset: 3px; }
.wp-site-blocks { padding-top: 0; }
main.wp-block-group { margin-block-start: 0; }
.wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }
.wp-block-post-content > .alignfull:last-child { margin-block-end: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }

/* ---------- Utility classes (add under Block > Advanced > Additional CSS class) ---------- */
.at-eyebrow {
	font-size: 0.8125rem !important;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-deep);
	margin-bottom: 0.25rem;
}
.has-primary-background-color .at-eyebrow,
.has-primary-dark-background-color .at-eyebrow { color: var(--wp--preset--color--gold); }

.at-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); line-height: 1.6; }
.at-muted { color: var(--wp--preset--color--muted); }
.at-small { font-size: var(--wp--preset--font-size--small); }

.at-section { padding-top: var(--wp--preset--spacing--70); padding-bottom: var(--wp--preset--spacing--70); }
.at-section-bottom { padding-bottom: var(--wp--preset--spacing--70); }
.at-section-tight { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }

.at-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px;
	padding: clamp(1.25rem, 3vw, 2rem);
	box-shadow: var(--wp--preset--shadow--soft);
	height: 100%;
}
.at-card > :first-child { margin-top: 0; }
.at-card h3 { font-size: 1.375rem; }
.at-card .at-card-link { margin-top: auto; font-weight: 700; }
.wp-block-column > .at-card { height: 100%; display: flex; flex-direction: column; }

.at-panel {
	border-radius: 20px;
	padding: clamp(1.5rem, 4vw, 2.75rem);
}
.at-panel > :first-child { margin-top: 0; }

.at-photo img { border-radius: 24px; box-shadow: var(--wp--preset--shadow--soft); width: 100%; object-fit: cover; aspect-ratio: 4 / 5; background: var(--wp--preset--color--sage-soft); }

/* Hero */
.at-hero { position: relative; overflow: hidden; padding-top: var(--wp--preset--spacing--70); padding-bottom: var(--wp--preset--spacing--70); }
.at-hero::before {
	content: ""; position: absolute; width: 640px; height: 640px; right: -180px; top: -220px;
	background: radial-gradient(closest-side, rgba(124,154,132,.28), rgba(124,154,132,0));
	pointer-events: none;
}
.at-hero::after {
	content: ""; position: absolute; width: 420px; height: 420px; left: -160px; bottom: -220px;
	background: radial-gradient(closest-side, rgba(233,196,106,.22), rgba(233,196,106,0));
	pointer-events: none;
}
.at-hero > * { position: relative; z-index: 1; }
.at-hero h1 { margin-top: 0.5rem; }

/* Page title banner */
.at-page-hero {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--50);
	background:
		radial-gradient(600px 300px at 90% 0%, rgba(124,154,132,.22), transparent 70%),
		var(--wp--preset--color--sand);
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.at-page-hero h1 { margin: 0; }

/* Checklists */
ul.at-checklist { list-style: none; padding-left: 0; }
ul.at-checklist li { position: relative; padding-left: 2rem; margin-bottom: 0.6rem; }
ul.at-checklist li::before {
	content: ""; position: absolute; left: 0; top: 0.35em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--wp--preset--color--sage-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%231F4A42' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5 10.5l3.2 3L15 6.5'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* Link grid (conditions list) */
ul.at-link-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 0.75rem; }
ul.at-link-grid li { margin: 0; }
ul.at-link-grid a {
	display: flex; align-items: center; justify-content: space-between; gap: .5rem;
	padding: 0.95rem 1.1rem; border-radius: 14px; text-decoration: none; font-weight: 700;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--primary-dark); transition: border-color .15s, transform .15s, box-shadow .15s;
}
ul.at-link-grid a::after { content: "→"; color: var(--wp--preset--color--sage); }
ul.at-link-grid a:hover { border-color: var(--wp--preset--color--sage); transform: translateY(-1px); box-shadow: var(--wp--preset--shadow--soft); }

/* Numbered steps */
.at-step-num {
	display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%;
	background: var(--wp--preset--color--primary); color: #fff !important; font-weight: 800; font-size: 1rem !important; margin-bottom: .5rem;
}

/* Notice boxes */
.at-notice {
	border-left: 4px solid var(--wp--preset--color--gold);
	background: #FFF8E6;
	border-radius: 10px;
	padding: 1rem 1.25rem;
}
.at-notice > :first-child { margin-top: 0; }
.at-notice > :last-child { margin-bottom: 0; }

/* Outline button variant on dark backgrounds */
.has-primary-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-primary-dark-background-color .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); }
.has-primary-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.has-primary-dark-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--wp--preset--color--gold); border-color: var(--wp--preset--color--gold); color: var(--wp--preset--color--primary-dark); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--primary); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: #fff; }
.has-primary-background-color a:not(.wp-element-button),
.has-primary-dark-background-color a:not(.wp-element-button) { color: #fff; }
.has-primary-background-color h1, .has-primary-background-color h2, .has-primary-background-color h3,
.has-primary-dark-background-color h1, .has-primary-dark-background-color h2, .has-primary-dark-background-color h3 { color: #fff; }

/* Details / FAQ */
.wp-block-details { border: 1px solid var(--wp--preset--color--border); border-radius: 14px; padding: 1rem 1.25rem; background: var(--wp--preset--color--surface); }
.wp-block-details summary { font-weight: 700; cursor: pointer; color: var(--wp--preset--color--primary-dark); }

/* Fallbacks for core alignment classes */
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }

/* ---------- Accessibility ---------- */
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* ---------- Header ---------- */
.at-topbar { font-size: 0.875rem; }
.at-topbar p { margin: 0; }
.at-topbar a { color: #fff; text-decoration: none; }
.at-topbar a:hover { text-decoration: underline; }
.at-header { border-bottom: 1px solid var(--wp--preset--color--border); }
.at-header .wp-block-site-logo img { max-height: 58px; width: auto; }
.wp-block-site-logo a.at-wordmark { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .2rem; line-height: 1.1; text-decoration: none; }
.at-wordmark strong, .at-wordmark span { display: block; }
.at-wordmark strong { font-family: var(--wp--preset--font-family--heading); font-size: 1.5rem; color: var(--wp--preset--color--primary-dark); font-weight: 600; }
.at-wordmark span { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; }
.at-header .wp-block-navigation a:hover { color: var(--wp--preset--color--primary); text-decoration: underline; text-underline-offset: 6px; }
.at-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border) !important; border-radius: 14px; padding: .5rem 0;
	box-shadow: var(--wp--preset--shadow--soft); min-width: 280px !important; font-weight: 600;
}
.at-header .wp-block-navigation .wp-block-navigation__submenu-container a { padding: .45rem 1.1rem !important; }
.at-header .wp-block-button__link { padding: .65rem 1.25rem; font-size: .95rem; }
@media (max-width: 900px) {
	.at-hide-mobile { display: none !important; }
}
@media (max-width: 600px) {
	.at-header-cta { display: none !important; }
}

/* ---------- Footer ---------- */
.wp-site-blocks > main, .wp-site-blocks > footer { margin-block-start: 0; }
.at-footer .at-wordmark strong { color: #fff; }
.at-footer .at-wordmark span { color: #C9DCCF; }
.at-footer { font-size: 0.95rem; }
.at-footer h2, .at-footer h3 { font-family: var(--wp--preset--font-family--body); font-size: 0.8125rem; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--gold) !important; font-weight: 800; }
.at-footer ul { list-style: none; padding: 0; margin: 0; }
.at-footer li { margin-bottom: .45rem; }
.at-footer a { color: #fff; text-decoration: none; }
.at-footer a:hover { text-decoration: underline; }
.at-footer .at-footer-services { columns: 2; column-gap: 1.5rem; }
.at-footer p { color: #D6E2DA; }
.at-footer .at-crisis { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); border-radius: 12px; padding: .9rem 1.1rem; color: #fff; }
.at-footer .at-legal { border-top: 1px solid rgba(255,255,255,.15); color: #C9DCCF; font-size: .875rem; }
.at-footer .wp-block-site-logo img { background: #fff; border-radius: 10px; padding: 6px 10px; }
@media (max-width: 600px) { .at-footer .at-footer-services { columns: 1; } }

/* ---------- Contact form ---------- */
.at-form { display: grid; gap: 1rem; }
.at-form .at-field { display: grid; gap: .35rem; }
.at-form label { font-weight: 700; font-size: .95rem; }
.at-form .at-req { color: #A3361F; }
.at-form input[type=text], .at-form input[type=email], .at-form input[type=tel], .at-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; padding: .8rem .95rem;
	border: 1.5px solid #C9C0AE; border-radius: 10px; background: #fff; color: var(--wp--preset--color--contrast);
}
.at-form input:focus, .at-form textarea:focus { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 1px; border-color: var(--wp--preset--color--primary); }
.at-form textarea { min-height: 150px; resize: vertical; }
.at-form .at-check { display: grid; grid-template-columns: auto 1fr; gap: .65rem; align-items: start; font-weight: 400; font-size: .9rem; line-height: 1.5; }
.at-form .at-check input { margin-top: .25rem; width: 1.1rem; height: 1.1rem; accent-color: var(--wp--preset--color--primary); }
.at-form .at-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.at-form button {
	justify-self: start; cursor: pointer; font: inherit; font-weight: 700; font-size: 1rem; padding: .85rem 1.75rem;
	border-radius: 999px; border: 2px solid var(--wp--preset--color--primary); background: var(--wp--preset--color--primary); color: #fff;
}
.at-form button:hover { background: var(--wp--preset--color--primary-dark); }
.at-form-msg { border-radius: 10px; padding: .9rem 1.1rem; font-weight: 600; }
.at-form-msg.is-success { background: var(--wp--preset--color--sage-soft); color: var(--wp--preset--color--primary-dark); }
.at-form-msg.is-error { background: #FBE9E5; color: #7A2412; }

/* Map */
.at-map iframe { width: 100%; height: 340px; border: 0; border-radius: 18px; display: block; }

/* Columns stack nicely */
@media (max-width: 781px) {
	.wp-block-columns.at-reverse-mobile { flex-direction: column-reverse; }
}
