/* =========================================================================
   Rise One — baseline theme styles
   Colors/fonts come from CSS variables printed by inc/design-tokens.php
   (fallbacks below keep the theme usable if tokens are absent).
   ========================================================================= */

:root {
	--ro-primary: #127a8a;
	--ro-primary-dark: #0d5c68;
	--ro-accent: #f2a541;
	--ro-ink: #16242b;
	--ro-muted: #5b6b72;
	--ro-surface: #ffffff;
	--ro-surface-alt: #f2f7f8;
	--ro-border: #dde8ea;
	--ro-font-heading: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--ro-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	--ro-maxw: 1140px;
	--ro-radius: 14px;
	--ro-radius-sm: 10px;
	--ro-shadow: 0 10px 30px rgba(16, 42, 51, 0.08);
	--ro-shadow-sm: 0 4px 14px rgba(16, 42, 51, 0.06);
	--ro-gap: clamp(1.5rem, 4vw, 3rem);
}

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

body {
	margin: 0;
	font-family: var(--ro-font-body);
	color: var(--ro-ink);
	background: var(--ro-surface);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3 { font-family: var(--ro-font-heading); line-height: 1.15; margin: 0 0 .5em; }
p { margin: 0 0 1rem; }
a { color: var(--ro-primary-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; display: block; }

.ro-container { width: 100%; max-width: var(--ro-maxw); margin: 0 auto; padding: 0 1.25rem; }
.ro-section { padding: clamp(2.5rem, 6vw, 5rem) 0; }
.ro-section:nth-child(even of .ro-section) { background: var(--ro-surface-alt); }

/* Shared bits ------------------------------------------------------------ */
.ro-eyebrow {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .78rem;
	font-weight: 600;
	color: var(--ro-primary);
	margin: 0 0 .6rem;
}
.ro-section__head { max-width: 640px; margin: 0 auto 2.5rem; text-align: center; }
.ro-section__title { font-size: clamp(1.6rem, 3.5vw, 2.3rem); }
.ro-section__intro { color: var(--ro-muted); font-size: 1.08rem; }

.ro-btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: .8rem 1.4rem; border-radius: 999px;
	font-family: var(--ro-font-heading); font-weight: 600; font-size: .95rem;
	border: 1.5px solid transparent; cursor: pointer; transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.ro-btn:hover { text-decoration: none; transform: translateY(-1px); }
.ro-btn--primary { background: var(--ro-primary); color: #fff; box-shadow: var(--ro-shadow-sm); }
.ro-btn--primary:hover { background: var(--ro-primary-dark); color: #fff; }
.ro-btn--accent { background: var(--ro-accent); color: #3a2a06; }
.ro-btn--ghost { background: transparent; border-color: var(--ro-border); color: var(--ro-ink); }
.ro-btn--ghost:hover { border-color: var(--ro-primary); color: var(--ro-primary-dark); }

.ro-media { width: 100%; border-radius: var(--ro-radius); overflow: hidden; background: var(--ro-surface-alt); }
.ro-media img { width: 100%; height: 100%; object-fit: cover; }
.ro-media--placeholder {
	display: grid; place-items: center; text-align: center;
	color: #fff; font-family: var(--ro-font-heading); font-weight: 600; letter-spacing: .01em;
	background: linear-gradient(135deg, var(--ro-primary), var(--ro-primary-dark));
	padding: 1rem;
}
.ro-media--placeholder span { opacity: .92; }

/* Header ----------------------------------------------------------------- */
.ro-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 255, 255, .9);
	backdrop-filter: saturate(1.4) blur(8px);
	border-bottom: 1px solid var(--ro-border);
}
.ro-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 1rem; }
.ro-brand { display: inline-flex; align-items: center; gap: .6rem; color: var(--ro-ink); font-weight: 700; }
.ro-brand:hover { text-decoration: none; }
.ro-brand__mark {
	display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px;
	background: var(--ro-primary); color: #fff; font-family: var(--ro-font-heading); font-weight: 700;
}
.ro-brand__name { font-family: var(--ro-font-heading); font-size: 1.1rem; }
.ro-brand__logo { max-height: 40px; width: auto; }

.ro-nav { display: flex; align-items: center; gap: 1.5rem; }
.ro-nav__list { display: flex; align-items: center; gap: 1.4rem; list-style: none; margin: 0; padding: 0; }
.ro-nav__list a { color: var(--ro-ink); font-weight: 500; font-size: .98rem; }
.ro-nav__list a:hover { color: var(--ro-primary-dark); text-decoration: none; }
.ro-nav__list .current-menu-item > a { color: var(--ro-primary); }

.ro-navtoggle { display: none; flex-direction: column; gap: 5px; background: none; border: 0; padding: 8px; cursor: pointer; }
.ro-navtoggle span { width: 24px; height: 2px; background: var(--ro-ink); border-radius: 2px; }

/* Hero ------------------------------------------------------------------- */
.ro-hero { background: linear-gradient(180deg, var(--ro-surface-alt), var(--ro-surface)); }
.ro-hero--compact { background: var(--ro-surface-alt); padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.ro-hero__inner { display: grid; gap: var(--ro-gap); align-items: center; }
.ro-hero--split .ro-hero__inner { grid-template-columns: 1.1fr .9fr; }
.ro-hero__title { font-size: clamp(2rem, 5vw, 3.2rem); }
.ro-hero--compact .ro-hero__title { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.ro-hero__subtitle { font-size: 1.15rem; color: var(--ro-muted); max-width: 42ch; }
.ro-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.ro-hero__image { box-shadow: var(--ro-shadow); }

/* Stats ------------------------------------------------------------------ */
.ro-stats { padding: clamp(2rem, 4vw, 3rem) 0; }
.ro-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; text-align: center; }
.ro-stat {
	background: var(--ro-surface); border: 1px solid var(--ro-border);
	border-radius: var(--ro-radius); padding: 1.5rem 1rem; box-shadow: var(--ro-shadow-sm);
}
.ro-stat__value { font-family: var(--ro-font-heading); font-weight: 700; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--ro-primary); }
.ro-stat__label { color: var(--ro-muted); font-size: .92rem; }

/* Services / cards ------------------------------------------------------- */
.ro-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.ro-card {
	background: var(--ro-surface); border: 1px solid var(--ro-border);
	border-radius: var(--ro-radius); padding: 1.6rem; box-shadow: var(--ro-shadow-sm);
	transition: transform .14s ease, box-shadow .14s ease;
}
.ro-card:hover { transform: translateY(-3px); box-shadow: var(--ro-shadow); }
.ro-card__icon {
	display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px;
	background: color-mix(in srgb, var(--ro-primary) 12%, #fff); color: var(--ro-primary); margin-bottom: 1rem;
}
.ro-icon { width: 26px; height: 26px; }
.ro-card__title { font-size: 1.15rem; margin-bottom: .35rem; }
.ro-card__body { color: var(--ro-muted); margin: 0; }

/* Text + media ----------------------------------------------------------- */
.ro-textmedia__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ro-gap); align-items: center; }
.ro-textmedia--media-left .ro-textmedia__media { order: -1; }
.ro-textmedia__body { color: var(--ro-muted); font-size: 1.05rem; }
.ro-checklist { list-style: none; margin: 1rem 0 1.5rem; padding: 0; display: grid; gap: .6rem; }
.ro-checklist li { position: relative; padding-left: 1.8rem; }
.ro-checklist li::before {
	content: ""; position: absolute; left: 0; top: .35rem; width: 18px; height: 18px; border-radius: 50%;
	background: var(--ro-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;
}

/* Testimonials ----------------------------------------------------------- */
.ro-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.ro-quote {
	margin: 0; background: var(--ro-surface); border: 1px solid var(--ro-border);
	border-radius: var(--ro-radius); padding: 1.6rem; box-shadow: var(--ro-shadow-sm);
}
.ro-quote__text { margin: 0 0 1rem; font-size: 1.05rem; }
.ro-quote__cite { display: flex; flex-direction: column; }
.ro-quote__name { font-weight: 600; font-family: var(--ro-font-heading); }
.ro-quote__meta { color: var(--ro-muted); font-size: .88rem; }

/* Team ------------------------------------------------------------------- */
.ro-team__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.ro-member {
	text-align: center; background: var(--ro-surface); border: 1px solid var(--ro-border);
	border-radius: var(--ro-radius); padding: 1.5rem; box-shadow: var(--ro-shadow-sm);
}
.ro-member__avatar, .ro-member__photo {
	width: 96px; height: 96px; margin: 0 auto 1rem; border-radius: 50%;
}
.ro-member__avatar {
	display: grid; place-items: center; color: #fff; font-family: var(--ro-font-heading);
	font-weight: 700; font-size: 1.6rem; background: linear-gradient(135deg, var(--ro-primary), var(--ro-primary-dark));
}
.ro-member__name { font-size: 1.1rem; margin-bottom: .1rem; }
.ro-member__role { color: var(--ro-primary); font-weight: 600; font-size: .9rem; margin-bottom: .5rem; }
.ro-member__bio { color: var(--ro-muted); font-size: .92rem; margin: 0; }

/* FAQ -------------------------------------------------------------------- */
.ro-faq__inner { max-width: 760px; }
.ro-faq__list { display: grid; gap: .75rem; }
.ro-faq__item { border: 1px solid var(--ro-border); border-radius: var(--ro-radius-sm); background: var(--ro-surface); padding: .25rem 1.1rem; }
.ro-faq__q { cursor: pointer; font-family: var(--ro-font-heading); font-weight: 600; padding: .9rem 0; list-style: none; }
.ro-faq__q::-webkit-details-marker { display: none; }
.ro-faq__q::after { content: "+"; float: right; color: var(--ro-primary); font-size: 1.3rem; line-height: 1; }
details[open] .ro-faq__q::after { content: "\2013"; }
.ro-faq__a { color: var(--ro-muted); padding: 0 0 1rem; }

/* CTA -------------------------------------------------------------------- */
.ro-cta__inner {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem;
	background: linear-gradient(135deg, var(--ro-primary), var(--ro-primary-dark));
	color: #fff; border-radius: var(--ro-radius); padding: clamp(1.8rem, 4vw, 2.8rem);
}
.ro-cta__title { color: #fff; margin: 0 0 .3rem; font-size: clamp(1.4rem, 3vw, 2rem); }
.ro-cta__body { color: rgba(255, 255, 255, .9); margin: 0; }

/* Contact ---------------------------------------------------------------- */
.ro-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ro-gap); }
.ro-contact__body { color: var(--ro-muted); }
.ro-contact__list { list-style: none; margin: 1.25rem 0; padding: 0; display: grid; gap: .9rem; }
.ro-contact__list li { display: grid; grid-template-columns: 70px 1fr; align-items: baseline; gap: .5rem; }
.ro-contact__k { color: var(--ro-primary); font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; }
.ro-hours__title { font-size: 1rem; margin-bottom: .5rem; }
.ro-hours__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.ro-hours__list li { display: flex; justify-content: space-between; gap: 1rem; color: var(--ro-muted); border-bottom: 1px dashed var(--ro-border); padding-bottom: .4rem; }

.ro-form { display: grid; gap: .9rem; background: var(--ro-surface); border: 1px solid var(--ro-border); border-radius: var(--ro-radius); padding: 1.5rem; box-shadow: var(--ro-shadow-sm); }
.ro-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.ro-form label { display: grid; gap: .3rem; font-size: .88rem; font-weight: 600; color: var(--ro-ink); }
.ro-form input, .ro-form textarea {
	font: inherit; font-weight: 400; padding: .65rem .8rem; border: 1px solid var(--ro-border);
	border-radius: var(--ro-radius-sm); background: var(--ro-surface-alt);
}
.ro-form input:focus, .ro-form textarea:focus { outline: 2px solid var(--ro-primary); outline-offset: 1px; }
.ro-form__note { font-size: .8rem; color: var(--ro-muted); font-weight: 400; margin: 0; }
.ro-map { margin-top: 1.25rem; aspect-ratio: 16 / 9; border-radius: var(--ro-radius); display: grid; place-items: center; color: var(--ro-muted); background: repeating-linear-gradient(45deg, var(--ro-surface-alt), var(--ro-surface-alt) 12px, #e9f1f2 12px, #e9f1f2 24px); border: 1px solid var(--ro-border); }

/* Footer ----------------------------------------------------------------- */
.ro-footer { background: var(--ro-ink); color: #cdd8dc; margin-top: 2rem; }
.ro-footer a { color: #eaf1f2; }
.ro-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--ro-gap); padding: clamp(2.5rem, 5vw, 3.5rem) 1.25rem; }
.ro-footer__brand .ro-brand__name { color: #fff; font-size: 1.2rem; }
.ro-footer__tagline { color: #9fb2b8; margin: .5rem 0 1rem; }
.ro-footer__title { color: #fff; font-size: 1rem; margin-bottom: .8rem; }
.ro-social { list-style: none; display: flex; gap: 1rem; padding: 0; margin: 0; }
.ro-footer .ro-hours__list li { color: #9fb2b8; border-color: rgba(255, 255, 255, .12); }
.ro-footer__bar { border-top: 1px solid rgba(255, 255, 255, .12); font-size: .85rem; color: #9fb2b8; }
.ro-footer__bar p { margin: 0; padding: 1rem 0; }

.ro-prose { max-width: 760px; }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 900px) {
	.ro-cards, .ro-quotes { grid-template-columns: repeat(2, 1fr); }
	.ro-team__grid { grid-template-columns: repeat(2, 1fr); }
	.ro-stats__grid { grid-template-columns: repeat(2, 1fr); }
	.ro-hero--split .ro-hero__inner,
	.ro-textmedia__inner,
	.ro-contact__grid { grid-template-columns: 1fr; }
	.ro-textmedia--media-left .ro-textmedia__media { order: 0; }
	.ro-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
	.ro-navtoggle { display: flex; }
	.ro-nav {
		position: absolute; top: 72px; left: 0; right: 0;
		flex-direction: column; align-items: stretch; gap: 0;
		background: var(--ro-surface); border-bottom: 1px solid var(--ro-border);
		padding: .5rem 1.25rem 1.25rem; box-shadow: var(--ro-shadow);
		display: none;
	}
	body.ro-nav-open .ro-nav { display: flex; }
	.ro-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.ro-nav__list li { border-bottom: 1px solid var(--ro-border); }
	.ro-nav__list a { display: block; padding: .9rem 0; }
	.ro-nav__cta { margin-top: 1rem; }
}

@media (max-width: 560px) {
	.ro-cards, .ro-quotes, .ro-team__grid, .ro-stats__grid, .ro-form__row { grid-template-columns: 1fr; }
	.ro-footer__grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   Block-editor content (core blocks seeded from the Site Profile)
   Rendered inside .ro-content; sections are full-width core/group blocks
   with constrained inner content. Reuses the tokens above.
   ========================================================================= */

.ro-content { overflow-x: clip; }

/* Section bands (full-width groups) + vertical rhythm + side gutters. */
.ro-content .ro-section {
	padding-top: clamp(2.5rem, 6vw, 5rem);
	padding-bottom: clamp(2.5rem, 6vw, 5rem);
	padding-inline: 1.25rem;
}
.ro-content .ro-hero { background: linear-gradient(180deg, var(--ro-surface-alt), var(--ro-surface)); }
.ro-content .ro-hero--compact { background: var(--ro-surface-alt); text-align: center; }
.ro-content .ro-services,
.ro-content .ro-testimonials,
.ro-content .ro-faq { background: var(--ro-surface-alt); }
.ro-content .ro-stats,
.ro-content .ro-textmedia,
.ro-content .ro-team { background: var(--ro-surface); }

/* Wide/full alignment fallbacks (classic theme). */
.ro-content .is-layout-constrained > .alignwide { max-width: var(--wp--style--global--wide-size, 1140px); }

/* Shared inline helpers emitted by the serializer. */
.ro-content .ro-eyebrow {
	text-transform: uppercase; letter-spacing: .08em; font-size: .78rem;
	font-weight: 600; color: var(--ro-primary); margin-bottom: .4rem;
}
.ro-content .ro-lead { color: var(--ro-muted); font-size: 1.1rem; }
.ro-content .ro-section__head { text-align: center; margin-bottom: 2rem; }
.ro-content .ro-section__head .ro-lead { margin-left: auto; margin-right: auto; max-width: 42ch; }

/* Buttons. */
.ro-content .wp-block-button__link {
	background: var(--ro-primary); color: #fff; border-radius: 999px;
	padding: .8rem 1.4rem; font-family: var(--ro-font-heading); font-weight: 600;
}
.ro-content .wp-block-button__link:hover { background: var(--ro-primary-dark); }
.ro-content .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent; color: var(--ro-ink); border: 1.5px solid var(--ro-border);
}

/* Hero. */
.ro-content .ro-hero h1 { font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.12; }
.ro-content .ro-hero--compact h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.ro-content .ro-hero .wp-block-columns { align-items: center; gap: var(--ro-gap); }
.ro-content .ro-hero__media img { border-radius: var(--ro-radius); box-shadow: var(--ro-shadow); width: 100%; }

/* Stat / card / quote / member tiles (each is a wp-block-column). */
.ro-content .ro-stat,
.ro-content .ro-card,
.ro-content .ro-quote,
.ro-content .ro-member {
	background: var(--ro-surface); border: 1px solid var(--ro-border);
	border-radius: var(--ro-radius); padding: 1.6rem; box-shadow: var(--ro-shadow-sm);
}
.ro-content .ro-stat { text-align: center; padding: 1.5rem 1rem; }
.ro-content .ro-stat h3 { color: var(--ro-primary); font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0; }
.ro-content .ro-stat__label { color: var(--ro-muted); margin: 0; font-size: .92rem; }
.ro-content .ro-card h3 { margin-top: 0; }
.ro-content .ro-card p { color: var(--ro-muted); margin-bottom: 0; }
.ro-content .ro-quote__text { font-size: 1.05rem; margin-bottom: 1rem; }
.ro-content .ro-quote__name { font-weight: 600; font-family: var(--ro-font-heading); margin: 0; }
.ro-content .ro-quote__meta { color: var(--ro-muted); font-size: .88rem; margin: 0; }

/* Team. */
.ro-content .ro-member { text-align: center; }
.ro-content .ro-member .wp-block-image { margin: 0 auto .75rem; }
.ro-content .ro-member .wp-block-image img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.ro-content .ro-member h3 { margin: 0 0 .1rem; font-size: 1.1rem; }
.ro-content .ro-member__role { color: var(--ro-primary); font-weight: 600; font-size: .9rem; margin: 0 0 .5rem; }
.ro-content .ro-member p { color: var(--ro-muted); margin: 0; font-size: .92rem; }

/* Text + media. */
.ro-content .ro-textmedia .wp-block-columns { align-items: center; gap: var(--ro-gap); }
.ro-content .ro-textmedia__media img { border-radius: var(--ro-radius); width: 100%; }
.ro-content .ro-textmedia__text ul.wp-block-list { list-style: none; padding: 0; display: grid; gap: .6rem; }
.ro-content .ro-textmedia__text ul.wp-block-list li { position: relative; padding-left: 1.8rem; }
.ro-content .ro-textmedia__text ul.wp-block-list li::before {
	content: ""; position: absolute; left: 0; top: .35rem; width: 18px; height: 18px; border-radius: 50%;
	background: var(--ro-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat;
}

/* FAQ. */
.ro-content .ro-faq__list { display: grid; gap: .75rem; max-width: 760px; margin-inline: auto; }
.ro-content .ro-faq__item {
	border: 1px solid var(--ro-border); border-radius: var(--ro-radius-sm);
	background: var(--ro-surface); padding: .25rem 1.1rem;
}
.ro-content .ro-faq__item summary {
	cursor: pointer; font-family: var(--ro-font-heading); font-weight: 600; padding: .9rem 0;
}

/* CTA band. */
.ro-content .ro-cta {
	background: linear-gradient(135deg, var(--ro-primary), var(--ro-primary-dark));
	text-align: center;
}
.ro-content .ro-cta h2, .ro-content .ro-cta p { color: #fff; }
.ro-content .ro-cta .wp-block-button__link { background: var(--ro-accent); color: #3a2a06; }
