/* ==========================================================================
   Refinements (client review): smaller hero headings, tighter vertical rhythm.
   Loaded last on every page, both sites.
   ========================================================================== */
:root { --section-y: 84px; }
@media (max-width: 720px) { :root { --section-y: 56px; } }

/* Hero headings */
.c-hero__title { font-size: clamp(36px, 4.4vw, 60px); line-height: 1; }
.c-hero--page .c-hero__title, .c-hero--block .c-hero__title { font-size: clamp(34px, 4.2vw, 58px); margin-bottom: 22px; }
.c-contact__title { font-size: clamp(36px, 4.4vw, 60px); margin-bottom: 24px; }
.c-hero__lead { font-size: clamp(34px, 4vw, 52px); margin-bottom: 26px; }
.c-hero--big-h1 h1.c-hero__lead { font-size: clamp(40px, 4.8vw, 62px); margin-bottom: 26px; }
.c-hero__pre { font-size: clamp(24px, 2.4vw, 32px); }

/* Hero padding */
.c-hero__inner { padding-top: 56px; padding-bottom: 64px; }
.c-hero--page .c-hero__inner { padding-top: 52px; padding-bottom: 56px; }
.c-hero--page.has-image .c-hero__inner { min-height: 0; }
.c-hero__pair { height: 440px; }
.c-pair__p1 { width: 380px; height: 285px; }
.c-pair__p2 { width: 340px; height: 255px; top: 180px; }
.c-fan { height: 460px; }
@media (max-width: 720px) { .c-hero__pair { height: 320px; } .c-pair__p1 { width: 260px; height: 195px; } .c-pair__p2 { width: 240px; height: 180px; top: 120px; } }

/* Section rhythm */
.c-hero + .c-it { padding-top: 72px; }
.c-it__inner { gap: 48px; }
.c-it--top .c-it__media { margin-bottom: 48px; }
.c-grid__banner { margin-bottom: 48px; }
.c-grid__head { margin-bottom: 32px; }
.c-blocks h2 { margin-bottom: 18px; }
.c-it--text + .c-it--text { padding-top: 0; }
.c-statement__inner { padding-top: 96px; padding-bottom: 96px; }
.c-feature__quotes { margin-top: 48px; }
.c-steps__intro { margin-bottom: 32px; }
.c-faq__head h2 { margin-bottom: 28px; }
.c-cta__inner { padding-top: 84px; padding-bottom: 84px; }
.c-quote__inner { padding-top: 96px; padding-bottom: 96px; }
.c-blog { padding-top: 84px; padding-bottom: 84px; }
.c-services__title { margin-bottom: 36px; }
.c-certs__inner { padding-top: 36px; padding-bottom: 36px; }
.c-footer__inner { padding-top: 52px; }
.c-contact__grid { padding-top: 56px; padding-bottom: 80px; }
.c-listing { padding-top: 56px; padding-bottom: 84px; }
#content:not(.c-blocks):not(.c-home):not(.c-contact) { padding-top: 40px; padding-bottom: 72px; }
.c-welcome__media { height: 480px; }
.c-split { gap: 48px; }
@media (max-width: 720px) {
	.c-statement__inner, .c-quote__inner { padding-top: 64px; padding-bottom: 64px; }
	.c-cta__inner { padding-top: 64px; padding-bottom: 64px; }
	.c-hero + .c-it { padding-top: 48px; }
	.c-welcome__media { height: 300px; }
}

/* Two consecutive sections on the same background share one gap instead of two */
.c-blocks__article > section.c-tone--white + section.c-tone--white,
.c-blocks__article > section.c-tone--pink + section.c-tone--pink,
.c-blocks__article > section.c-tone--paper + section.c-tone--paper,
.c-blocks__article > section.c-tone--white + section.c-steps,
.c-blocks__article > section.c-steps + section.c-tone--white { padding-top: 0; }
.c-home .c-welcome + .c-seo { padding-top: var(--section-y); }

/* Header: keep logo and menu on one row on desktop */
@media (min-width: 1100px) {
	.c-masthead__inner { flex-wrap: nowrap; gap: 24px; }
	.c-nav__list { gap: 6px 18px; flex-wrap: nowrap; }
	.c-nav { gap: 18px; }
	.c-nav__link { white-space: nowrap; }
}
@media (min-width: 1100px) and (max-width: 1300px) {
	.c-masthead__logo img { height: 42px; }
	.c-nav__link { font-size: 13px; }
	.c-nav__list { gap: 6px 14px; }
	.c-masthead__cta, .c-nav__item--cta > .c-nav__link { padding: 10px 18px; }
}

/* Quote panels inside dark / magenta bands: readable translucent panel */
.c-dark .c-prose blockquote, .c-mag .c-prose blockquote, .c-statement .c-prose blockquote, .c-cta .c-prose blockquote, .c-feature__text blockquote {
	background: rgba(255, 255, 255, .08) !important; color: inherit; border-left-color: var(--c-pink-on-dark);
}
.c-dark .c-prose blockquote a, .c-statement .c-prose blockquote a, .c-cta .c-prose blockquote a { color: var(--c-pink-on-dark); }
.c-mag .c-prose blockquote a, .c-feature__text blockquote a { color: var(--c-white); }
.c-cta__text > * + * { margin-top: 16px; }

/* Footer map: a full-width strip under the footer columns */
.c-footer__map { flex: 1 0 100%; max-width: none; }
.c-footer__map iframe { height: 180px; background: #3a3939; }

/* ==========================================================================
   Final polish
   ========================================================================== */

/* Calmer section headings */
.c-blocks h2 { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.08; }
.c-blocks .c-statement h2, .c-cta__text h2 { font-size: clamp(32px, 3.4vw, 48px); }
.c-display { font-size: clamp(34px, 4vw, 52px); }
.c-card2__body h2 { font-size: clamp(22px, 2vw, 27px); }
.c-grid--tiles .c-card2__body h3 { font-size: 22px; }
.c-blocks .c-prose p, .c-blocks .c-prose li { text-wrap: pretty; }
.c-blocks h2, .c-blocks h3, .c-hero__title, .c-display { text-wrap: balance; }

/* Text-only sections: centred reading column */
.c-it--text .c-it__inner { justify-content: center; }
.c-it--text .c-it__text { max-width: 820px; margin: 0 auto; }

/* Long-text tiles: white card with a CMYK colour edge (short tiles keep their colour) */
.c-card2--soft { background: var(--c-white); color: var(--c-ink); border: 1px solid var(--c-line-soft); border-top: 5px solid var(--c-magenta); box-shadow: 0 12px 30px rgba(43, 42, 42, .06); }
.c-card2--soft.c-edge--ink { border-top-color: var(--c-ink); }
.c-card2--soft.c-edge--cyan { border-top-color: var(--c-cyan); }
.c-card2--soft.c-edge--yellow { border-top-color: var(--c-yellow); }
.c-card2--soft a { color: var(--c-magenta); }
.c-card2--soft .c-tags li { background: var(--c-pink-soft); }
.c-grid--tiles .c-card2 { box-shadow: 0 12px 30px rgba(43, 42, 42, .06); }

/* Content separators (non-CMYK) */
.c-blocks hr.wp-block-separator:not(.is-style-cmyk), .entry-content hr { border: 0; height: 1px; background: var(--c-line); margin: 32px 0; opacity: 1; max-width: 120px; }

/* Old inline-styled content, brought into the brand (text untouched) */
.c-blocks div[style*="#eb0087"], .entry-content div[style*="#eb0087"] {
	background: linear-gradient(135deg, var(--c-magenta), #8A004F) !important; color: var(--c-white) !important;
	font-size: 1.15em !important; font-weight: 500; padding: 22px 28px !important; border-radius: var(--radius-l) !important;
	box-shadow: 0 18px 40px rgba(185, 0, 106, .22); margin: 28px 0;
}
.c-blocks div[style*="#eb0087"] a, .entry-content div[style*="#eb0087"] a { color: var(--c-white) !important; font-weight: 600; }
section.seopro-cta[style] {
	background: var(--c-pink-soft) !important; color: var(--c-ink) !important; border: 0 !important; border-left: 4px solid var(--c-magenta) !important;
	border-radius: var(--radius-l) !important; box-shadow: none !important; padding: 28px 32px !important; text-align: left !important; margin: 36px 0 !important;
}
section.seopro-cta a { color: var(--c-magenta); font-weight: 600; }
span[style*="Georgia"] { font-family: inherit !important; font-size: inherit !important; color: inherit !important; }

/* Tables */
.c-blocks .c-prose table, .entry-content table { border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 1px var(--c-line-soft); }
.c-blocks .c-prose th, .entry-content th { background: var(--c-pink-soft); color: var(--c-ink); }
.c-blocks .c-prose tr:nth-child(even) td { background: #FCFBFA; }

/* Images inside text */
.c-blocks .c-prose img { box-shadow: 0 14px 34px rgba(43, 42, 42, .10); }

/* Sticky header with a soft shadow once scrolled */
.c-masthead { position: sticky; top: 0; transition: box-shadow .3s, background .3s; }
.admin-bar .c-masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar .c-masthead { top: 0; } }
.c-masthead.is-scrolled { box-shadow: 0 8px 24px rgba(43, 42, 42, .08); background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(8px); }
.c-masthead.is-scrolled .c-masthead__inner { padding-top: 12px; padding-bottom: 12px; }
.c-masthead__inner { transition: padding .3s; }

/* Gentle fade-in for browsers without scroll-driven animations (JS adds .c-io) */
@supports not (animation-timeline: view()) {
	.c-io .c-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
	.c-io .c-reveal.is-in { opacity: 1; transform: none; }
}

/* Buttons & links: consistent, smooth */
.c-livequote, .c-contact__action, .c-masthead__cta, .c-cta__actions a, .c-grid--callouts .c-card2 { transition: transform .35s var(--ease), box-shadow .35s, background .25s, color .25s; }
.c-masthead__cta:hover, .c-cta__actions a:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(185, 0, 106, .25); }
a { text-underline-offset: .18em; }

@media (prefers-reduced-motion: reduce) {
	.c-masthead, .c-masthead__inner { transition: none; }
	.c-io .c-reveal { opacity: 1 !important; transform: none !important; }
}

/* Homepage rhythm: SEO copy on its pale band, no stacked gap after the welcome section */
.c-home .c-seo { background: var(--c-pink-soft); padding: 72px 0; }
.c-home .c-welcome { padding-bottom: 72px; }
.c-home .c-welcome + .c-seo { padding-top: 72px; }
.c-home .c-seo__inner { max-width: 860px; }
.c-home .c-seo__lead p { font-size: 19px; color: var(--c-ink); }
.c-home .c-seo__inner h2 { margin-top: 36px; }
.c-home .c-services { padding-top: 84px; }

/* Wide tables in content scroll inside their own box on small screens */
@media (max-width: 720px) {
	.entry-content table, .c-prose table, article table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; min-width: 0 !important; width: auto !important; }
}

/* Footer: aligned grid (brand + three menu columns), contact bar and map on the same edges */
.c-footbar p { max-width: var(--wrap); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); box-sizing: border-box; text-align: center; }
.c-footer__inner { display: grid; grid-template-columns: minmax(220px, 1.3fr) repeat(3, minmax(0, 1fr)); gap: 32px 48px; align-items: start; }
.c-footer__inner > .c-footer__col--3 ul { display: flex; flex-direction: column; gap: 10px; }
.c-footer__map { grid-column: 1 / -1; max-width: none; }
@media (max-width: 960px) { .c-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .c-footer__inner { grid-template-columns: 1fr; } }

/* Team members (Team Members plugin) as a clean card grid */
.c-it--team .c-it__text { max-width: none; }
.tmm .tmm_wrap { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; width: 100% !important; }
.tmm .tmm_container, .tmm .tmm_columns_containers_desktop { display: contents !important; }
.tmm .tmm_two_containers_tablet { display: none !important; }
.tmm .tmm_member {
	width: auto !important; margin: 0 !important; float: none !important; min-height: 0 !important;
	background: var(--c-white) !important; border: 1px solid var(--c-line-soft) !important; border-top: 4px solid var(--c-magenta) !important;
	border-radius: var(--radius-l) !important; box-shadow: 0 12px 30px rgba(43, 42, 42, .06) !important;
	padding: 32px 26px 28px !important; text-align: center; transition: transform .4s var(--ease), box-shadow .4s;
}
.tmm .tmm_member:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(43, 42, 42, .1) !important; }
.tmm .tmm_member::before, .tmm .tmm_member::after { display: none !important; }
.tmm .tmm_photo { width: 120px !important; height: 120px !important; border-radius: 50% !important; margin: 0 auto 18px !important; border: 4px solid var(--c-pink-soft) !important; box-shadow: none !important; position: static !important; }
.tmm .tmm_textblock { padding: 0 !important; margin: 0 !important; }
.tmm .tmm_names { font-family: var(--f-serif) !important; font-size: 22px !important; font-weight: 600 !important; color: var(--c-ink) !important; line-height: 1.2 !important; margin-bottom: 6px !important; }
.tmm .tmm_job { font-size: 13px !important; font-weight: 600 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--c-magenta) !important; margin-bottom: 14px !important; padding: 0 !important; }
.tmm .tmm_desc, .tmm .tmm_desc p { font-size: 15px !important; line-height: 1.6 !important; color: var(--c-grey) !important; margin: 0 !important; }
.tmm .tmm_scblock:empty { display: none; }
@media (prefers-reduced-motion: reduce) { .tmm .tmm_member:hover { transform: none; } }
.tmm .tmm_photo { aspect-ratio: 1 / 1; padding: 0 !important; min-height: 0 !important; max-height: 120px !important; background-position: center !important; }
.tmm .tmm_member .tmm_photo + .tmm_textblock { margin-top: 0 !important; }
@media (min-width: 900px) { .tmm .tmm_wrap { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1080px; margin: 0 auto; } }
.tmm .tmm_photo { border-radius: 50% !important; overflow: hidden; }

/* Quote blocks used as containers (more than one block inside) read as normal text, not boxes */
.c-blocks blockquote:has(> * + *) {
	background: none !important; border: 0 !important; padding: 0 !important; margin: 0 0 16px !important;
	border-radius: 0 !important; box-shadow: none !important; font: inherit !important; color: inherit !important;
}
.c-blocks .c-card2 blockquote, .c-blocks .c-faq__a blockquote, .c-blocks .c-cta blockquote, .c-blocks .c-statement blockquote {
	background: none !important; border: 0 !important; padding: 0 !important; margin: 0 0 16px !important; border-radius: 0 !important;
	font: inherit !important; color: inherit !important;
}
.c-blocks .c-it .c-prose > blockquote:has(> * + *) { padding-left: 22px !important; border-left: 3px solid var(--c-pink) !important; }

/* Card titles: lighter, cleaner */
.c-card2__body h2, .c-card2__body h3 { font-weight: 600 !important; letter-spacing: -0.01em; }
.c-grid--tiles .c-card2__body { padding: 32px 30px; }

/* Even grids: 6 or 3 items -> 3 columns; 4 items stay 4; 5 -> 3 */
@media (min-width: 900px) {
	.c-grid__items:has(> :nth-child(3):last-child),
	.c-grid__items:has(> :nth-child(5):last-child),
	.c-grid__items:has(> :nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* Top contact bar: icon chips with a little more presence */
.c-topbar { background: linear-gradient(90deg, #232222, var(--c-ink) 60%, #3a2532); font-size: 14px; }
.c-topbar__inner { gap: 8px 10px; padding-top: 7px; padding-bottom: 7px; align-items: center; }
.c-topbar a { display: inline-flex; align-items: center; gap: 9px; padding: 5px 14px 5px 6px; border-radius: var(--pill); text-decoration: none !important; font-weight: 500; letter-spacing: .01em; transition: background .25s, color .25s; }
.c-topbar__icon { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--c-magenta); color: var(--c-white); flex: none; }
.c-topbar__phone { color: var(--c-white) !important; font-weight: 600 !important; }
.c-topbar__email { color: var(--c-pink-on-dark) !important; }
.c-topbar__email .c-topbar__icon { background: rgba(255, 140, 198, .18); color: var(--c-pink-on-dark); }
.c-topbar a:hover { background: rgba(255, 255, 255, .08); }
@media (max-width: 560px) { .c-topbar__inner { justify-content: center; } .c-topbar a { padding-right: 10px; font-size: 13px; } }

/* Footer phone/email: same icon chips as the top bar */
.c-footer .c-footer__phone, .c-footer .c-footer__email { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; padding: 6px 16px 6px 6px; border-radius: var(--pill); text-decoration: none !important; transition: background .25s; }
.c-footer .c-footer__phone { font-size: 18px; font-weight: 600; color: var(--c-white) !important; background: rgba(255, 255, 255, .06); }
.c-footer .c-footer__email { font-size: 14px; color: var(--c-pink-on-dark) !important; }
.c-footer .c-footer__phone:hover, .c-footer .c-footer__email:hover { background: rgba(255, 255, 255, .1); }
.c-chip__icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--c-magenta); color: var(--c-white); flex: none; }
.c-footer__email .c-chip__icon { background: rgba(255, 140, 198, .18); color: var(--c-pink-on-dark); }

/* Header CMYK stripe: always fully drawn (no scroll-grow animation at the top of the page) */
.c-masthead + .c-cmyk span, .c-site > .c-cmyk:first-of-type span { animation: none !important; transform: none !important; }

/* Text-only pages: hero without photos lines up with the centred reading column below */
.c-hero--block:not(.has-photos) .c-hero__inner { max-width: calc(820px + 2 * var(--gutter)); padding-top: 64px; padding-bottom: 56px; }
.c-hero--block:not(.has-photos) .c-hero__text { flex: 1 1 auto; max-width: none; }
.c-hero--block:not(.has-photos) .c-hero__body { max-width: none; }
.c-hero--block:not(.has-photos) + .c-it--text { padding-top: 64px; }
