/* ---------------------------------------------------------------------------
   Subpage components  —  ported from the v2 mockup's site.css
   (marketing docs/site.css) onto core block markup.

   Markup contract (see docs/content.md for full examples):
     header.agenda-page-hero            page hero band; breadcrumbs + 2 columns
       .lede / .hero-note / aside.agenda-panel
     section.agenda-band[.is-alt|.is-soft|.is-pain|.is-dark]
       .agenda-section-head             eyebrow + h2 + p (shared with home)
       .agenda-grid[.is-two]            grid layout group of tiles
         article.agenda-tile[.is-step|.is-contact]
       .agenda-faq-list > .agenda-faq-item   core/details rows
     section.agenda-cta-band > .agenda-cta-row
     .agenda-contact-grid               2-up grid of .agenda-tile.is-contact (1.2fr/.8fr)
     .agenda-split                      core/columns: portrait + text
     .agenda-embed-shell                third-party scheduler iframe
   Bands and heroes use layout {"type":"constrained","contentSize":"1160px"},
   so their children sit in the mockup's 1160px wrap without alignwide.
--------------------------------------------------------------------------- */

/* ---- Page hero -------------------------------------------------------- */
.agenda-page-hero {
	background: linear-gradient(115deg, #fff 0%, #fff 62%, var(--green-soft) 100%);
	padding-block: 78px 82px;
}
.agenda-page-hero > .wp-block-breadcrumbs {
	margin-block: 0 26px;
	font-size: .82rem;
	color: var(--muted);
}
.agenda-page-hero > .wp-block-breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.agenda-page-hero > .wp-block-breadcrumbs + * { margin-block-start: 0; }
.agenda-page-hero > .wp-block-columns { gap: 54px; margin-block: 0; }
.agenda-page-hero .wp-block-column > * { margin-block: 0; }
.agenda-page-hero h1 {
	font-size: clamp(2.55rem, 4.7vw, 4.25rem);
	line-height: 1.08;
	letter-spacing: -.035em;
	margin-block: 12px 20px !important;
}
.agenda-page-hero .lede { font-size: 1.13rem; color: #354039; max-width: 700px; margin-block-end: 24px !important; }
.agenda-page-hero .wp-block-buttons { gap: 12px; }
.agenda-page-hero .hero-note { color: var(--muted); font-size: .85rem; margin-block-start: 13px !important; }

.agenda-panel {
	background: var(--green-deep);
	color: #fff;
	border-radius: 22px;
	padding: 34px;
	box-shadow: 0 18px 50px rgba(24, 54, 19, .125);
}
.agenda-panel > * { margin-block: 0; }
.agenda-panel h2 { color: #fff; font-size: 1.55rem; line-height: 1.25; font-weight: 600; letter-spacing: 0; margin-block-end: 16px; }
.agenda-panel p { color: #d7e5d2; font-size: .95rem; }
.agenda-panel ul { padding-left: 22px; }
.agenda-panel li { padding-block: 7px; color: #e3ecdf; }
.agenda-panel li::marker { color: #98d278; }

/* ---- Bands (page sections) -------------------------------------------- */
.agenda-band { padding-block: 80px; }
.agenda-band.is-alt { background: var(--wash); }
.agenda-band.is-soft { background: var(--green-soft); }
.agenda-band.is-pain { background: #f5f8f2; }
.agenda-band.is-dark { background: var(--green-deep); color: #fff; }
.agenda-band.is-dark h2,
.agenda-band.is-dark h3 { color: #fff; }

.agenda-band .agenda-section-head > * { max-width: 790px; margin-block: 0; }
.agenda-band .agenda-section-head h2 {
	font-size: clamp(1.95rem, 3vw, 2.8rem);
	line-height: 1.18;
	font-weight: 600;
	letter-spacing: -.02em;
	margin-block: 8px 12px;
}
.agenda-band .agenda-section-head p:not(.eyebrow) { font-size: 1.05rem; }
.agenda-band.is-pain .agenda-section-head > * { max-width: 850px; }
.agenda-band.is-pain .agenda-section-head p:not(.eyebrow) { font-size: 1.12rem; color: #354039; }
.agenda-band.is-dark .agenda-section-head p:not(.eyebrow),
.agenda-band.is-dark .agenda-tile p { color: #d1dfce; }
/* Section head → content spacing (mockup: .section-head{margin-bottom:34px}) */
.agenda-band > .agenda-section-head + * { margin-block-start: 34px; }

/* ---- Tile grids -------------------------------------------------------- */
.agenda-grid { gap: 18px; }
.agenda-grid.is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.agenda-grid.is-two.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.agenda-tile {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 16px;
	padding: 25px;
}
.agenda-tile > * { margin-block: 0; }
.agenda-tile h2,
.agenda-tile h3 { font-size: 1.18rem; line-height: 1.3; font-weight: 600; letter-spacing: 0; margin-block-end: 10px; }
.agenda-tile p { color: var(--muted); margin-block-end: 12px; }
.agenda-tile > :last-child { margin-block-end: 0; }
.agenda-tile a { font-weight: 700; color: var(--green-dark); text-decoration: underline; text-underline-offset: 4px; }
.agenda-tile .card-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin-block-end: 15px;
	border-radius: 11px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: 1.25rem;
	line-height: 1;
}
.agenda-band.is-pain .agenda-tile { border-left: 3px solid var(--green); }
.agenda-band.is-pain .agenda-tile h3 { color: var(--green-dark); }

/* Numbered steps (mockup .flow) */
.agenda-tile.is-step { border-top: 4px solid var(--green); }
.agenda-tile .step-n {
	font-family: var(--wp--preset--font-family--roboto-slab);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--green);
	margin-block-end: 4px;
}

/* Contact cards (mockup .contact-card) */
.agenda-tile.is-contact { padding: 28px; }
.agenda-tile.is-contact h2 { font-size: 1.5rem; margin-block-end: 12px; }
.agenda-tile.is-contact .wp-block-buttons { margin-block-start: 18px; }
.agenda-contact-grid.is-layout-grid { grid-template-columns: 1.2fr .8fr; gap: 22px; }

/* ---- FAQ (core/details) ------------------------------------------------ */
/* The list group spans the band; rows are capped inside it so they stay flush
   left (a max-width on a direct child of a constrained band would centre it). */
.agenda-faq-list > .agenda-faq-item { max-width: 900px; margin-block: 0; border-bottom: 1px solid var(--line); }
.agenda-faq-item summary {
	cursor: pointer;
	padding: 19px 34px 19px 0;
	font-family: var(--wp--preset--font-family--roboto-slab);
	font-size: 1.07rem;
	font-weight: 600;
	line-height: 1.5;
}
.agenda-faq-item > p { color: var(--muted); margin: 0 0 20px; }

/* ---- Closing CTA band -------------------------------------------------- */
.agenda-cta-band { background: var(--green-dark); color: #fff; padding-block: 60px; }
.agenda-cta-row { gap: 26px; }
.agenda-cta-row > .wp-block-group > * { margin-block: 0; }
.agenda-cta-band h2 { color: #fff; font-size: 2.3rem; line-height: 1.17; font-weight: 600; letter-spacing: 0; margin-block-end: 9px !important; }
.agenda-cta-band p { color: #d1e3cb; }
.agenda-cta-band .wp-block-buttons { flex-shrink: 0; gap: 12px; }
.agenda-cta-band .wp-block-button.agenda-cta .wp-block-button__link { background: #fff; color: var(--green-dark); box-shadow: none; }
.agenda-cta-band .wp-block-button.agenda-cta .wp-block-button__link:hover { color: var(--green); }
.agenda-cta-band .wp-block-button.agenda-cta-secondary .wp-block-button__link { background: transparent; color: #fff; border-color: #a5c69a; }

/* ---- Split: portrait + text (About) ------------------------------------ */
.agenda-split { gap: 40px; margin-block: 0; }
.agenda-split .wp-block-image img { width: 100%; max-width: 360px; border-radius: 18px; box-shadow: 0 16px 40px rgba(0, 0, 0, .13); }
.agenda-split .wp-block-column > * { margin-block: 0 16px; }
.agenda-split h2 { font-size: 2.1rem; line-height: 1.2; font-weight: 600; letter-spacing: 0; }
.agenda-split p { color: var(--muted); }
.agenda-split p strong { color: var(--ink); }

/* ---- Embedded scheduler ------------------------------------------------ */
.agenda-embed-shell { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.agenda-embed-shell iframe { display: block; width: 100%; min-height: 740px; border: 0; background: #fff; }
.booking-note { font-size: .88rem; color: var(--muted); }
.booking-note a,
.agenda-note a { color: var(--green-dark); text-decoration: underline; }
.agenda-note { color: var(--muted); margin-block-start: 25px !important; }

/* ---- Responsive (mockup breakpoints 900 / 700) ------------------------- */
@media (max-width: 900px) {
	.agenda-page-hero { padding-block: 58px; }
	.agenda-page-hero > .wp-block-columns,
	.agenda-split { flex-wrap: wrap !important; }
	.agenda-page-hero > .wp-block-columns > .wp-block-column,
	.agenda-split > .wp-block-column { flex-basis: 100% !important; }
	.agenda-contact-grid.is-layout-grid { grid-template-columns: minmax(0, 1fr); }
	.agenda-panel { max-width: 680px; }
	.agenda-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.agenda-band { padding-block: 64px; }
	.agenda-page-hero h1 { font-size: 2.55rem; }
	.agenda-grid.is-layout-grid,
	.agenda-grid.is-two.is-layout-grid { grid-template-columns: minmax(0, 1fr); }
	.agenda-cta-row.is-layout-flex { flex-direction: column; align-items: flex-start; }
	.agenda-embed-shell iframe { min-height: 800px; }
}

/* Generic page template (templates/page.html): compact hero with just the trail and title. */
.agenda-page-hero.is-compact { padding-block: 58px 46px; }
.agenda-page-hero.is-compact > .wp-block-post-title { margin-block: 0; }
