@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/newsreader-400-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/newsreader-400-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/newsreader-400-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/newsreader-400-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/newsreader-500-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/newsreader-500-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-400-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-400-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-sans-3-600-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-sans-3-600-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Hover and focus states from the design */
.fx1:focus { top: 12px !important; }
.fx2:hover { text-decoration: underline 2px rgb(232, 163, 142) !important; text-underline-offset: 8px !important; }
.fx3:hover { background: rgb(247, 245, 241) !important; color: rgb(23, 63, 67) !important; }
.fx4:hover { background: rgb(16, 50, 53) !important; color: rgb(255, 255, 255) !important; }
.fx5:hover { border-color: rgb(23, 63, 67) !important; }
.fx6:hover { text-decoration: underline 2px rgb(232, 163, 142) !important; text-underline-offset: 0.28em !important; text-decoration-skip-ink: auto !important; }
.fx7::after { content: ""; position: absolute; inset: 0px; }
.fx8:hover { color: rgb(255, 255, 255) !important; text-decoration-color: rgb(255, 255, 255) !important; }
.fx9:hover { text-decoration-color: rgb(23, 63, 67) !important; }
.fx10:hover { text-decoration-thickness: 2px !important; }
.fx11:hover { background: rgb(242, 187, 169) !important; color: rgb(23, 63, 67) !important; }
.fx12:hover { color: rgb(255, 255, 255) !important; text-decoration: underline !important; text-underline-offset: 4px !important; }
.fx13:hover { color: rgb(255, 255, 255) !important; }
.fx14:hover { color: rgb(255, 255, 255) !important; text-decoration-color: rgb(232, 163, 142) !important; }
.fx15:hover { text-decoration: underline 2px rgb(232, 163, 142) !important; text-underline-offset: 0.22em !important; }
.fx16:active { color: rgb(23, 63, 67) !important; }
.fx17:active { background: rgb(16, 50, 53) !important; }
.fx18:hover { background: rgb(16, 50, 53) !important; }
.fx19:hover { text-decoration: underline 2px rgb(232, 163, 142) !important; text-underline-offset: 6px !important; }

/* Base */
:root {
  --hf: 'Newsreader', Georgia, 'Times New Roman', serif;
  --bf: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --teal: #173F43;
  --teal-dark: #103235;
  --coral: #E8A38E;
  --sand: #F7F5F1;
  --ink: #242C2E;
  --line: #D3DDD6;
}
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; }
html, body { margin: 0; padding: 0; background: #fff; color: var(--ink); font-family: var(--bf); -webkit-text-size-adjust: 100%; }
img { max-width: 100%; }
a { color: var(--teal); }
a:hover { color: var(--teal-dark); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.link-underline:hover { text-decoration-color: var(--teal) !important; }
.btn-submit:hover { background: var(--teal-dark) !important; }
.btn-submit[disabled] { opacity: .8; cursor: progress; }

/* Skip link */
.skip-link { position: absolute; left: 24px; top: -120px; z-index: 200; background: var(--teal); color: #fff; padding: 12px 18px; font: 600 16px var(--bf); text-decoration: none; border-radius: 4px; }
.skip-link:focus { top: 12px; color: #fff; }

/* Header */
.site-header { background: var(--sand); position: relative; z-index: 50; }
.site-header__bar { max-width: 1200px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 24px); min-height: clamp(68px, 8vw, 88px); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-header__logo { display: flex; align-items: center; flex: none; padding: 10px 0; }
.site-header__logo img { display: block; height: clamp(55px, 6.4vw, 75px); width: auto; mix-blend-mode: multiply; transform: translateY(6px); }

.chev { display: block; width: 6px; height: 6px; border-right: 1.5px solid var(--teal); border-bottom: 1.5px solid var(--teal); transform: translateY(-2px) rotate(45deg); transition: transform .15s; }
[aria-expanded="true"] > .chev { transform: translateY(2px) rotate(-135deg); }

.primary-nav__list { display: flex; align-items: center; gap: 10px; list-style: none; margin: 0; padding: 0; }
.primary-nav__item { position: relative; display: flex; align-items: center; }
.primary-nav__item--contact { margin-left: 8px; padding-left: 20px; border-left: 1px solid var(--line); }
.primary-nav__link { display: inline-flex; align-items: center; min-height: 48px; padding: 0 2px 0 12px; font: 600 16.5px var(--bf); color: var(--teal); text-decoration: none; }
.primary-nav__item--contact .primary-nav__link { padding: 0 2px; }
.primary-nav__link:hover, .primary-nav__link[aria-current="page"] { color: var(--teal); text-decoration: underline 2px var(--coral); text-underline-offset: 8px; }
.primary-nav__button { gap: 12px; padding: 0 10px 0 12px; border: 0; background: transparent; cursor: pointer; }
.primary-nav__button[data-current] { text-decoration: underline 2px var(--coral); text-underline-offset: 8px; }
.primary-nav__toggle { width: 36px; height: 44px; border: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.primary-nav__menu { position: absolute; top: 100%; left: 4px; margin: 10px 0 0; padding: 8px; list-style: none; background: #fff; border: 1px solid #E4DFD5; border-radius: 10px; min-width: 260px; box-shadow: 0 1px 2px rgba(23, 63, 67, .04), 0 18px 40px -14px rgba(23, 63, 67, .20); }
#menu-services { min-width: 300px; }
.primary-nav__menu a { display: block; padding: 12px 16px; font: 400 16.5px/1.3 var(--bf); color: var(--ink); text-decoration: none; border-radius: 6px; white-space: nowrap; transition: background .12s; }
.primary-nav__menu a:hover { background: var(--sand); color: var(--teal); }

.menu-button { display: none; min-height: 44px; padding: 0 4px 0 12px; border: 0; background: transparent; cursor: pointer; align-items: center; gap: 10px; font: 600 17px var(--bf); color: var(--teal); }
.menu-button__icon { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.menu-button__icon span { display: block; height: 2px; background: var(--teal); }
.menu-button__icon span + span { width: 70%; margin-left: auto; }
.close-icon { position: relative; display: block; width: 20px; height: 20px; }
.close-icon span { position: absolute; left: 0; right: 0; top: 9px; height: 2px; background: var(--teal); transform: rotate(45deg); }
.close-icon span + span { transform: rotate(-45deg); }

.mobile-menu { position: fixed; inset: 0; z-index: 100; background: var(--sand); display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; }
.mobile-menu[hidden] { display: none; }
.mobile-menu__bar { flex: none; max-width: 1200px; width: 100%; margin: 0 auto; padding: 0 clamp(20px, 4vw, 24px); min-height: clamp(68px, 8vw, 88px); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.mobile-menu .menu-button { display: inline-flex; gap: 12px; }
.mobile-menu__nav { flex: 1; max-width: 1200px; width: 100%; margin: 0 auto; padding: 8px clamp(20px, 4vw, 24px) 40px; }
.mobile-menu__nav > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.mobile-menu__nav > ul > li { border-bottom: 1px solid var(--line); }
.mobile-menu__row { display: flex; align-items: center; justify-content: space-between; }
.mobile-menu__row > a { flex: 1; display: block; padding: 18px 0; font: 400 28px/1.15 var(--hf); color: var(--teal); text-decoration: none; }
.mobile-menu__toggle { flex: none; width: 48px; height: 48px; margin-right: -8px; border: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.mobile-menu__toggle .chev, .mobile-menu__button .chev { width: 8px; height: 8px; }
.mobile-menu__button { width: 100%; padding: 18px 12px 18px 0; margin: 0; border: 0; background: transparent; cursor: pointer; font: 400 28px/1.15 var(--hf); color: var(--teal); text-align: left; }
.mobile-menu__sub { list-style: none; margin: 0; padding: 0 0 16px; display: flex; flex-direction: column; }
.mobile-menu__sub[hidden] { display: none; }
.mobile-menu__sub a { display: block; padding: 10px 0; font: 400 18px/1.35 var(--bf); color: var(--ink); text-decoration: none; }

@media (max-width: 899px) {
  .primary-nav { display: none; }
  .site-header__bar > .menu-button { display: inline-flex; }
}
html.menu-open { overflow: hidden; }

/* Homepage closing block: centred on wide screens, left-aligned on small ones */
.closing-copy { align-items: center; text-align: center; }
@media (max-width: 899px) { .closing-copy { align-items: flex-start; text-align: left; } }

/* Footer */
.site-footer { background: var(--teal); color: #fff; }
.site-footer__top { max-width: 1200px; margin: 0 auto; padding: clamp(40px, 5vw, 56px) clamp(20px, 4vw, 24px) 0; border-top: 1px solid rgba(255, 255, 255, .16); display: flex; flex-wrap: wrap; gap: 36px clamp(32px, 5vw, 72px); }
.site-footer__brand { flex: 2 1 260px; min-width: 0; max-width: 420px; display: flex; flex-direction: column; gap: 10px; }
.site-footer__brand > a { display: inline-flex; align-self: flex-start; margin-bottom: 6px; }
.site-footer__brand img { display: block; height: 64px; width: auto; filter: brightness(0) invert(1); }
.site-footer__brand p { margin: 0; font: 400 17px/1.55 var(--bf); color: #D6E0DB; text-wrap: pretty; }
.site-footer__nav { flex: 1 1 220px; min-width: 0; }
.site-footer__nav h2 { margin: 0 0 12px; font: 600 15px/1.3 var(--bf); letter-spacing: .04em; color: #fff; }
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.site-footer__nav a { display: inline-block; padding: 6px 0; font: 400 17px/1.4 var(--bf); color: #D6E0DB; text-decoration: none; }
.site-footer__links { max-width: 1200px; margin: clamp(32px, 4vw, 48px) auto 0; padding: 20px clamp(20px, 4vw, 24px) 28px; border-top: 1px solid rgba(255, 255, 255, .12); display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: center; }
.site-footer__links a { padding: 6px 0; font: 400 16px var(--bf); color: #D6E0DB; text-decoration: none; }
.site-footer__nav a:hover, .site-footer__links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.site-footer .back-to-top { margin-left: auto; display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 0; font: 600 16px var(--bf); color: #fff; }
.site-footer .back-to-top:hover { text-decoration: none; }
.back-to-top__icon { position: relative; display: inline-block; width: 40px; height: 40px; border-radius: 50%; background: var(--coral); }
.back-to-top__icon span { position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-left: 2px solid var(--teal); border-top: 2px solid var(--teal); transform: translate(-50%, -25%) rotate(45deg); box-sizing: content-box; }
.site-footer__legal { max-width: 1200px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 24px) 32px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 28px; }
.site-footer__legal p { margin: 0; font: 400 15px/1.5 var(--bf); color: #B9C9C2; }
.site-footer__legal a { color: #D6E0DB; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 4px; }
.site-footer__legal a:hover { color: #fff; text-decoration-color: var(--coral); }

/* Article body (WordPress post content) */
.article-body { display: flex; flex-direction: column; gap: 24px; }
.article-body > * { margin: 0; }
.article-body p, .article-body li { font: 400 clamp(18px, 1.3vw, 19px)/1.75 var(--bf); color: var(--ink); text-wrap: pretty; }
.article-body h2 { margin-top: clamp(20px, 2.6vw, 32px); font: 400 clamp(28px, 2.6vw, 36px)/1.15 var(--hf); letter-spacing: -0.012em; color: var(--teal); text-wrap: balance; }
.article-body h3 { margin-top: clamp(12px, 1.6vw, 20px); font: 500 clamp(22px, 2vw, 27px)/1.25 var(--hf); color: var(--teal); }
.article-body h4, .article-body h5, .article-body h6 { font: 600 19px/1.4 var(--bf); color: var(--teal); }
.article-body a { color: var(--teal); text-decoration: underline 2px var(--coral); text-underline-offset: 5px; }
.article-body a:hover { text-decoration-color: var(--teal); }
.article-body ul, .article-body ol { padding-left: 24px; display: flex; flex-direction: column; gap: 10px; }
.article-body blockquote { margin: 0; padding: 4px 0 4px 22px; border-left: 2px solid var(--coral); font: 400 clamp(20px, 1.7vw, 23px)/1.5 var(--hf); color: var(--teal); }
.article-body blockquote p { font: inherit; color: inherit; }
.article-body img { max-width: 100%; height: auto; border-radius: 6px; }
.article-body figure { margin: 0; }
.article-body figcaption { margin-top: 8px; font: 400 15px/1.5 var(--bf); color: #586461; }
.article-body hr { border: 0; border-top: 1px solid var(--line); }
.article-body iframe, .article-body video { max-width: 100%; }
.article-body .wp-block-embed__wrapper, .article-body .wp-video { max-width: 100%; }
.article-body table { border-collapse: collapse; width: 100%; font: 400 17px/1.5 var(--bf); }
.article-body td, .article-body th { padding: 10px 12px; border: 1px solid var(--line); text-align: left; }
.article-body strong { font-weight: 600; }
.article-body .callout, .article-body .wp-block-group { padding: clamp(28px, 3.4vw, 44px); background: #E6EEE8; border-radius: 6px; }

/* Pagination links from WordPress */
.archive-pages .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--teal); font: 600 16px var(--bf); text-decoration: none; }
.archive-pages .page-numbers.current { background: var(--teal); border-color: var(--teal); color: #fff; }
.archive-pages .page-numbers.dots { border: 0; min-width: 0; padding: 0 4px; }
.archive-pages .page-numbers:hover { border-color: var(--teal); }

/* Keep WordPress admin bar from overlapping the header */
body.admin-bar .mobile-menu { top: 32px; }
@media (max-width: 782px) { body.admin-bar .mobile-menu { top: 46px; } }

/* Contact Form 7 (form 1010) in the design's enquiry styling */
.enquiry-form{display:flex;flex-direction:column;gap:24px}
.enquiry-form .enq-title{margin:0;font:400 clamp(26px,2.4vw,32px)/1.15 var(--hf);color:#173F43}
.enquiry-form .enq-field{display:flex;flex-direction:column;gap:8px}
.enquiry-form label{font:600 17px/1.3 var(--bf);color:#242C2E}
.enquiry-form label span{font-weight:400;color:#586461}
.enquiry-form .enq-hint{margin:0;font:400 16px/1.55 var(--bf);color:#586461;text-wrap:pretty}
.enquiry-form .wpcf7-form-control-wrap{display:block}
.enquiry-form .wpcf7-form-control:not(.wpcf7-submit){box-sizing:border-box;width:100%;min-height:52px;padding:0 16px;border:1px solid #AEBBB5;border-radius:6px;background:#fff;font:400 17px var(--bf);color:#242C2E}
.enquiry-form select.wpcf7-form-control{cursor:pointer}
.enquiry-form textarea.wpcf7-form-control{min-height:180px;padding:14px 16px;line-height:1.55;resize:vertical}
.enquiry-form .wpcf7-form-control:focus-visible{outline:2px solid #E8A38E;outline-offset:2px}
.enquiry-form .wpcf7-not-valid{border:2px solid #A33A2A}
.enquiry-form .wpcf7-not-valid-tip{display:block;margin-top:2px;font:600 16px/1.4 var(--bf);color:#A33A2A}
.enquiry-form .enq-note{display:flex;flex-direction:column;gap:6px;padding:16px 18px;background:#F7F5F1;border-radius:6px}
.enquiry-form .enq-note p{margin:0;font:400 16px/1.55 var(--bf);color:#242C2E}
.enquiry-form .enq-note a{color:#173F43;text-decoration:underline;text-decoration-color:#E8A38E;text-decoration-thickness:2px;text-underline-offset:4px}
.enquiry-form .enq-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.enquiry-form .wpcf7-submit{display:inline-flex;align-items:center;min-height:54px;padding:0 30px;border:0;background:#173F43;color:#fff;font:600 16px var(--bf);border-radius:999px;cursor:pointer;transition:background .15s}
.enquiry-form .wpcf7-submit:hover{background:#0F2F32}
.enquiry-form .wpcf7-submit:disabled{opacity:.6;cursor:wait}
.enquiry-form .wpcf7-spinner{margin:0 0 0 4px}
.enquiry-form .wpcf7-response-output{margin:0;padding:18px 22px;border:2px solid #A33A2A;border-radius:6px;background:#FBF1EE;font:400 17px/1.5 var(--bf);color:#242C2E}
.enquiry-form.sent .wpcf7-response-output{border-color:#173F43;background:#F7F5F1;font:400 18px/1.6 var(--bf)}
.enquiry-form .wpcf7-response-output:empty{display:none}
.grecaptcha-badge{visibility:hidden}
/* Turnstile (added by Contact Form 7 at the top of the form) shown just above the button */
.enquiry-form .wpcf7-turnstile{order:1;margin:0 0 4px}
.enquiry-form .enq-actions{order:2}
.enquiry-form .wpcf7-response-output{order:3}
