/* Margraten theme: layout and component styling on top of theme.json */
:root { --m-shadow: 0 10px 30px rgba(23, 46, 107, 0.08); --m-radius: 16px; }
body { -webkit-font-smoothing: antialiased; }

/* header: green stripe, logo with large swoosh, tinted menu band */
.site-header { border-bottom: 0; }
.site-header > * + * { margin-block-start: 0 !important; }
.brand-bar { height: 6px; }
.header-main { padding: 0.85rem 0; position: relative; overflow: hidden; min-height: 92px; }
.site-header .site-logo img { height: auto; max-height: 60px; width: auto; }
.header-swoosh { position: absolute; top: 0; right: 0; height: 100%; width: auto; max-width: none; pointer-events: none; }
.nav-band { position: sticky; top: 0; z-index: 50; border-top: 1px solid rgba(43, 47, 143, 0.08); border-bottom: 1px solid rgba(43, 47, 143, 0.12); }
.nav-primary .wp-block-navigation-item__content { padding: 0.8rem 0.65rem; border-radius: 0; color: var(--wp--preset--color--primary); font-size: 0.9rem; letter-spacing: 0.03em; }
.nav-primary .wp-block-navigation-item__content:hover,
.nav-primary .current-menu-item > .wp-block-navigation-item__content { background: transparent; color: var(--wp--preset--color--primary-dark); text-decoration: none; box-shadow: inset 0 -3px 0 var(--wp--preset--color--accent); }
.nav-band .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--primary); padding: 0.4rem 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: inherit; font-size: 1.25rem; box-shadow: none; }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* hero */
.home-hero { position: relative; overflow: hidden; }
.home-hero::after { content: ""; position: absolute; right: -10vw; top: -20%; width: 55vw; height: 140%; background: radial-gradient(closest-side, rgba(108, 179, 63, 0.18), transparent 70%); pointer-events: none; }
.home-hero > * { position: relative; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85rem; font-weight: 700; margin-bottom: 0.5rem; font-family: var(--wp--preset--font-family--heading); }
.hero-title { max-width: 18ch; margin-top: 0; font-size: clamp(1.9rem, 1.5rem + 1.6vw, 2.6rem); }
.hero-intro p { max-width: 52ch; font-size: 1.2rem; }
.info-card { box-shadow: var(--m-shadow); }
.info-card .contact-lines { line-height: 1.8; }
.btn-accent .wp-block-button__link { color: #fff; }
.btn-accent .wp-block-button__link:hover { background: var(--wp--preset--color--accent-dark) !important; }
.is-style-outline .wp-block-button__link { border: 2px solid var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); background: transparent; }
.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: #fff; }

/* cards */
.card-grid { gap: 1.5rem; align-items: stretch; }
.card { display: flex; flex-direction: column; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-top: 4px solid var(--wp--preset--color--accent); border-radius: var(--m-radius); padding: 1.5rem 1.5rem 1.25rem; transition: transform .2s ease, box-shadow .2s ease; min-width: 0; }
.card:hover { transform: translateY(-3px); box-shadow: var(--m-shadow); }
.card h3 { font-size: 1.1rem !important; line-height: 1.3; letter-spacing: 0.02em; margin: 0 0 0.6rem !important; overflow-wrap: anywhere; }
.card h3 a { text-decoration: none; color: var(--wp--preset--color--primary); }
.card h3 a:hover { color: var(--wp--preset--color--primary-dark); }
.card p { margin: 0; font-size: 0.98rem; }
.card > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; width: 100%; }
.card .card-link { margin-top: auto !important; padding-top: 1rem; text-align: right; }
.card-link a { font-weight: 600; text-decoration: none; color: var(--wp--preset--color--accent-dark); }
.card-link a::after { content: " →"; }

/* content pages */
.page-title { margin-bottom: 1.5rem; }
.page-main .wp-block-post-content > * + h2 { margin-top: 2.5rem; }
.page-main .wp-block-post-content p, .page-main .wp-block-post-content li { max-width: 72ch; }
.page-main .wp-block-post-content h2, .page-main .wp-block-post-content h3 { padding-left: 0.75rem; border-left: 4px solid var(--wp--preset--color--accent); }
.wp-block-post-content a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.wp-block-post-content iframe { max-width: 100%; border-radius: var(--m-radius); }
.wp-block-post-content .wp-block-media-text { border-radius: var(--m-radius); overflow: hidden; }

/* contact form 7 */
.wpcf7 { margin-top: 1.5rem; }
.wpcf7 form { background: var(--wp--preset--color--surface); border-radius: var(--m-radius); padding: 1.75rem; }
.form-section { border: 0; padding: 0; margin: 0 0 2.25rem; min-width: 0; }
.form-section legend { font-family: var(--wp--preset--font-family--heading); text-transform: uppercase; letter-spacing: 0.05em; color: var(--wp--preset--color--primary); font-size: 1.05rem; padding: 0; margin: 0 0 0.75rem; }
.form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.4rem 2.5rem; }
.form-grid > label { min-width: 0; }
.form-grid .span-2 { grid-column: 1 / -1; }
.wpcf7 label { display: block; font-weight: 600; font-size: 0.95rem; color: var(--wp--preset--color--contrast); }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 0.45rem; }
.wpcf7 input:not([type=submit]), .wpcf7 textarea, .wpcf7 select { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; height: 2.9rem; padding: 0 0.9rem; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; font: inherit; font-size: 1rem; background: #fff; color: var(--wp--preset--color--contrast); }
.wpcf7 textarea { height: auto; min-height: 10rem; padding: 0.7rem 0.9rem; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px; border-color: var(--wp--preset--color--accent); }
.form-note { font-size: 0.85rem; color: var(--wp--preset--color--muted); margin: -0.5rem 0 1rem; }
.wpcf7 input[type=submit] { height: auto; width: auto; background: var(--wp--preset--color--primary); color: #fff; border: 0; border-radius: 6px; padding: 0.85rem 1.8rem; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.05em; cursor: pointer; }
.wpcf7 input[type=submit]:hover { background: var(--wp--preset--color--primary-dark); }
.wpcf7-spinner { margin-left: 0.75rem; }
.wpcf7-not-valid-tip { color: #b42318; font-size: 0.85rem; margin-top: 0.25rem; }
.wpcf7 form .wpcf7-response-output { border-radius: 8px; margin: 1.25rem 0 0; padding: 0.9rem 1rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--wp--preset--color--accent); background: #fff; }
@media (max-width: 760px) { .form-grid { grid-template-columns: minmax(0, 1fr); } .wpcf7 form { padding: 1.25rem; } }

/* footer */
.site-footer { border-top: 4px solid var(--wp--preset--color--accent); }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--wp--preset--color--accent); }
.site-footer h2 { color: var(--wp--preset--color--accent) !important; font-size: 1.15rem !important; letter-spacing: 0.04em; }
.site-footer .doc-list, .site-footer .wp-block-navigation { list-style: none; padding-left: 0; }
.site-footer .doc-list li { margin-bottom: 0.4rem; }
.nav-footer-list .wp-block-navigation-item__content, .site-footer .nav-primary .current-menu-item > .wp-block-navigation-item__content, .site-footer .nav-primary .wp-block-navigation-item__content:hover { padding: 0; color: #fff; box-shadow: none; background: transparent; }
.site-footer .nav-primary .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.footer-separator { opacity: 0.25; margin-top: 2rem; }
.footer-legal { opacity: 0.8; }
.site-footer .contact-lines, .site-footer .doc-list { font-size: 0.95rem; line-height: 1.75; }
.site-footer .doc-list li { margin-bottom: 0.3rem; }

@media (max-width: 781px) {
  .home-hero { padding-top: var(--wp--preset--spacing--50) !important; padding-bottom: var(--wp--preset--spacing--50) !important; }
  .site-header .site-logo img { max-height: 42px; }
  .header-swoosh { display: none; }
  .site-header .site-logo img { max-height: 44px; }
  .nav-band { position: static; }
}

/* headings inside content get clear space above them (the layout block gap would otherwise flatten it) */
.wp-block-post-content > h2, .wp-block-post-content .wp-block-group > h2 { margin-top: 2.5rem !important; margin-bottom: 0.75rem !important; }
.wp-block-post-content > h3, .wp-block-post-content .wp-block-group > h3 { margin-top: 2rem !important; margin-bottom: 0.5rem !important; }
.wp-block-post-content > h4 { margin-top: 1.75rem !important; margin-bottom: 0.5rem !important; }
.wp-block-post-content > h2:first-child, .wp-block-post-content > h3:first-child { margin-top: 0 !important; }
