/* McDougall theme: details theme.json can't express.
   Colours and fonts come from theme.json presets (var(--wp--preset--...)). */

:root {
	--mhr-radius: 20px;
	--mhr-radius-lg: 24px;
	--mhr-shadow: 0 16px 40px rgba(18, 50, 74, 0.08);
	--mhr-shadow-hover: 0 10px 30px rgba(18, 50, 74, 0.10);
	--mhr-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Header ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid var(--wp--preset--color--line);
	backdrop-filter: saturate(1.2) blur(6px);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header .wp-block-site-logo img { height: 52px; width: auto; }
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem;
	animation: mhr-drop .25s ease-out;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-size: 1.125rem;
	padding: .5rem 0;
}
.site-header .wp-block-navigation-item.current-menu-item > a,
.site-header .wp-block-navigation-item a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--green);
	text-underline-offset: 8px;
}
@media (max-width: 600px) { .site-header .header-book { display: none; } }

/* ---------- Sections ---------- */
.section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.section-tight { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.lead { font-size: var(--wp--preset--font-size--medium); color: var(--wp--preset--color--slate); max-width: 640px; }
.muted { color: var(--wp--preset--color--muted); }
.centered { text-align: center; }
.centered .lead { margin-left: auto; margin-right: auto; }

/* ---------- Block styles ---------- */
.is-style-eyebrow {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: .5rem !important;
}
.is-style-tag {
	display: inline-block;
	background: var(--wp--preset--color--mist);
	border-radius: 999px;
	padding: .3rem .9rem;
	font-size: .875rem;
	margin: 0 .35rem .35rem 0 !important;
}
.is-style-tag.is-green { background: var(--wp--preset--color--green-tint); color: var(--wp--preset--color--green-text); font-weight: 600; }

.wp-block-group.is-style-card,
.wp-block-group.is-style-card-outline {
	background: var(--wp--preset--color--white);
	border-radius: var(--mhr-radius);
	padding: 1.5rem;
	transition: box-shadow .3s ease, transform .3s ease;
}
.wp-block-group.is-style-card-outline { border: 1px solid var(--wp--preset--color--line); }
.wp-block-group.is-style-card-outline.is-featured { border: 2px solid var(--wp--preset--color--navy); }
.wp-block-group.is-style-card:hover,
.wp-block-group.is-style-card-outline:hover { box-shadow: var(--mhr-shadow-hover); }
.wp-block-group.is-style-card > *:first-child,
.wp-block-group.is-style-card-outline > *:first-child,
.wp-block-group.is-style-panel-navy > *:first-child { margin-top: 0; }

.wp-block-group.is-style-panel-navy {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--base);
	border-radius: var(--mhr-radius-lg);
	padding: 1.75rem;
}
.is-style-panel-navy h1, .is-style-panel-navy h2, .is-style-panel-navy h3,
.is-style-panel-navy a:not(.wp-element-button) { color: var(--wp--preset--color--base); }
.is-style-panel-navy p, .is-style-panel-navy li { color: #DCEAF4; }

.wp-block-group.is-style-photo {
	background: var(--wp--preset--color--sky);
	border-radius: var(--mhr-radius-lg);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #44596A;
	font-size: .875rem;
	text-align: center;
	padding: 1rem;
}
.wp-block-group.is-style-photo.is-wide { aspect-ratio: auto; min-height: clamp(220px, 28vw, 380px); }
.wp-block-image.is-style-rounded-photo img { border-radius: var(--mhr-radius-lg); }

.wp-block-button.is-style-ghost .wp-block-button__link {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--border);
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--wp--preset--color--mist); }
.wp-block-button.is-style-light .wp-block-button__link {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--wp--preset--color--mist); }

/* Lists with icons */
ul.is-style-ticks, ul.is-style-dashes { list-style: none; padding-left: 0; }
ul.is-style-ticks li, ul.is-style-dashes li { position: relative; padding-left: 1.9rem; margin-bottom: .55rem; }
ul.is-style-ticks li::before, ul.is-style-dashes li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 1.15rem;
	height: 1.15rem;
	background: var(--wp--preset--color--navy);
	-webkit-mask: var(--mhr-icon) center / contain no-repeat;
	mask: var(--mhr-icon) center / contain no-repeat;
}
ul.is-style-ticks li::before { --mhr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4.5 4.5L19 7'/%3E%3C/svg%3E"); }
ul.is-style-dashes li::before { background: var(--wp--preset--color--muted); --mhr-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E"); }
.is-style-panel-navy ul.is-style-ticks li::before { background: var(--wp--preset--color--base); }

/* Numbered steps */
.steps .step-number {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.125rem;
	line-height: 1;
	color: var(--wp--preset--color--green-text);
	margin-bottom: .25rem;
}
.steps > .wp-block-group { border-top: 1px solid var(--wp--preset--color--border); padding-top: 1.1rem; }

/* Tables */
.wp-block-table.is-style-fees { background: var(--wp--preset--color--white); border-radius: var(--mhr-radius); overflow: hidden; }
.wp-block-table.is-style-fees table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-fees th,
.wp-block-table.is-style-fees td { border: 0; border-bottom: 1px solid var(--wp--preset--color--mist); padding: 1rem 1.5rem; text-align: left; vertical-align: top; }
.wp-block-table.is-style-fees thead th {
	background: var(--wp--preset--color--mist);
	font-size: .75rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
	border-bottom: 0;
}
.wp-block-table.is-style-fees td:nth-child(2) { font-weight: 600; }
@media (min-width: 640px) { .wp-block-table.is-style-fees td:nth-child(2) { white-space: nowrap; } }
@media (max-width: 639px) { .wp-block-table.is-style-fees th, .wp-block-table.is-style-fees td { padding: .8rem 1rem; } }
.wp-block-table.is-style-fees tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-fees thead { border-bottom: 0; }

/* FAQ */
.wp-block-details summary { font-weight: 600; cursor: pointer; }
.wp-block-details > :not(summary) { color: var(--wp--preset--color--slate); }
.wp-block-details[open] summary { margin-bottom: .5rem; }

/* Quotes as review cards */
.wp-block-quote.review { background: var(--wp--preset--color--white); border-radius: var(--mhr-radius); padding: 1.75rem; margin: 0; }
.wp-block-quote.review cite { font-family: var(--wp--preset--font-family--body); font-size: .875rem; font-style: normal; color: var(--wp--preset--color--muted); }

/* Link cards (a group whose whole surface is the link target) */
.link-arrow a { font-weight: 600; text-decoration: none; }
.link-arrow a::after { content: " \2192"; }

/* ---------- Footer ---------- */
.site-footer { background: var(--wp--preset--color--deep); color: #C5D6E3; font-size: .875rem; }
.site-footer a { color: var(--wp--preset--color--base); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer h2 { font-size: 1.5rem; color: var(--wp--preset--color--base); }
.site-footer h3 { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: #C5D6E3; }
.site-footer .footer-legal { border-top: 1px solid #23496A; font-size: .75rem; }

/* ---------- Micro-interactions ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .2s ease, transform .15s ease, box-shadow .2s ease; }
.wp-element-button:hover, .wp-block-button__link:hover { box-shadow: 0 6px 18px rgba(23, 80, 122, .22); }
.wp-element-button:active, .wp-block-button__link:active { transform: scale(.97); }
@keyframes mhr-drop { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Grids fill the row (auto-fit) instead of leaving empty columns */
.grid-12.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)) !important; }
.grid-14.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)) !important; }
.grid-16.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)) !important; }
.grid-18.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)) !important; }
h2 a, h3 a { text-decoration: none; }
h2 a:hover, h3 a:hover { text-decoration: underline; }
