/* Interaction layer. Colours follow the palette already used by the theme. */

/* --- Brand logo ------------------------------------------------------- */
.brand img{height:44px;width:auto;display:block}
.site-footer .brand img{height:48px}
.site-footer .brand{margin-bottom:4px}
@media (max-width:760px){
 .brand img{height:36px}
 .site-footer .brand img{height:42px}
}

/* --- Reveal on scroll ------------------------------------------------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease;transition-delay:var(--reveal-delay,0ms)}
.reveal.revealed{opacity:1;transform:none}

/* --- Sticky header and reading progress ------------------------------- */
.site-header{position:sticky;top:0;z-index:40;transition:box-shadow .25s ease}
.site-header.is-stuck{box-shadow:0 1px 18px rgba(16,57,46,.13)}
.site-header.is-stuck .nav{min-height:70px}
.nav{transition:min-height .25s ease}
.read-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:#25573f;transform:scaleX(0);transform-origin:0 50%;z-index:60;pointer-events:none}
.navlinks a.current{color:#126347;box-shadow:inset 0 -2px 0 #d7edb0}
.navlinks a.current.button{color:#fff;box-shadow:none}

/* --- FAQ accordion ---------------------------------------------------- */
.faq{padding:70px 0 10px;border-top:1px solid #d2ded5;margin-top:60px}
.faq h2{max-width:20ch;margin-bottom:34px}
.faq-list{border-top:1px solid #d2ded5}
.faq-item{border-bottom:1px solid #d2ded5}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 0;font-size:1.12rem;font-weight:600;letter-spacing:-.02em;color:#182526}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:#126347}
.faq-item summary:focus-visible{outline:3px solid #ca5a24;outline-offset:3px}
.faq-mark{flex:none;width:22px;height:22px;position:relative;margin-top:4px}
.faq-mark::before,.faq-mark::after{content:'';position:absolute;background:#25573f;transition:transform .25s ease,opacity .25s ease}
.faq-mark::before{top:10px;left:0;width:22px;height:2px}
.faq-mark::after{left:10px;top:0;width:2px;height:22px}
.faq-item[open] .faq-mark::after{transform:rotate(90deg);opacity:0}
.faq-answer{overflow:hidden;transition:height .25s ease}
.faq-answer p{max-width:72ch;padding-bottom:24px;margin:0}
.faq-answer a{color:#126347;box-shadow:inset 0 -1px 0 #9dbf8d}
.faq-answer a:hover{box-shadow:inset 0 -2px 0 #25573f}

/* --- Related services ------------------------------------------------- */
.related{padding:70px 0 20px;border-top:1px solid #d2ded5;margin-top:60px}
.related h2{max-width:22ch;margin-bottom:34px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.related-card{display:flex;flex-direction:column;align-items:flex-start;padding:26px;background:#f1f5ee;border-top:3px solid #25573f;transition:transform .22s ease,background .22s ease}
.prose .related-card,.prose .related-card h3,.prose .related-card p{text-decoration:none;color:inherit}
.prose .related-card h3{color:#182526}
.prose .related-card:hover h3{color:#126347}
.related-card:hover{transform:translateY(-4px);background:#e8efe2;color:inherit}
.related-card h3{font-size:1.2rem;margin-bottom:10px}
.related-card p{font-size:.93rem;margin-bottom:18px}
.related-card .text-link{margin-top:auto}

/* --- Service filter --------------------------------------------------- */
.card-filter{margin:0 0 26px;max-width:520px}
.card-filter label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:#28624f;margin-bottom:10px}
.card-filter input{width:100%;border:1px solid #889f8e;background:#fff;padding:13px 15px}
.card-filter input:focus-visible{outline:3px solid #ca5a24;outline-offset:2px}
.card-filter-count{font-size:.88rem;margin:10px 0 0;min-height:1.2em}
/* .card and .cards set display, which would otherwise defeat the hidden attribute. */
.cards .card[hidden]{display:none}
.cards[hidden]{display:none}

/* --- Form feedback ---------------------------------------------------- */
.field-error{color:#a3341a;font-size:.87rem;margin:7px 0 0;font-weight:550}
.field-hint{font-size:.85rem;color:#6a7874;margin:7px 0 0}
.form [aria-invalid="true"]{border-color:#a3341a;box-shadow:inset 0 0 0 1px #a3341a}
.copy-button{margin:0 0 14px;background:transparent;border:1px solid #889f8e;color:#163f33;font-size:.78rem;font-weight:600;padding:5px 11px;cursor:pointer;transition:background .2s,border-color .2s}
.copy-button:hover{background:#e8efe2}
.copy-button.copied{background:#d9ecb5;border-color:#7ea070}

/* --- On-page contents ------------------------------------------------- */
.toc{background:#f1f5ee;border-left:3px solid #25573f;padding:22px 26px;margin:0 0 38px}
.toc-title{text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:700;color:#28624f;margin:0 0 12px}
.toc ol{margin:0;padding-left:20px;font-size:.95rem}
.toc li{margin-bottom:7px}
.toc a{color:#2c3b39;box-shadow:inset 0 -1px 0 transparent}
.toc a:hover,.toc a.current{color:#126347;box-shadow:inset 0 -1px 0 #9dbf8d}
.toc a.current{font-weight:650}

/* --- Articles ---------------------------------------------------------- */
.article-meta{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.88rem;color:#5d6b68;margin:24px 0 0}
.article-meta time{color:inherit}
.article-list{display:grid;gap:1px;background:#d2ded5;border:1px solid #d2ded5}
.article-card{background:#fff;padding:32px 34px}
.article-card .num{display:block;font-family:monospace;font-size:.76rem;letter-spacing:.14em;color:#28624f;margin-bottom:14px}
.article-card h2{font-size:1.8rem;margin-bottom:14px}
.article-card h2 a{color:#182526}
.article-card h2 a:hover{color:#126347}
.article-card p{max-width:70ch;margin-bottom:12px}
.article-card .article-meta{margin:0 0 16px;font-size:.85rem}
.pagination{margin:34px 0;display:flex;gap:8px}
.pagination .page-numbers{padding:9px 15px;border:1px solid #c1cec3;font-size:.92rem}
.pagination .current{background:#173f33;color:#fff;border-color:#173f33}

/* Long-form article furniture */
.prose table{width:100%;border-collapse:collapse;margin:30px 0;font-size:.94rem;line-height:1.5}
.prose table th,.prose table td{text-align:left;border:1px solid #d2ded5;padding:11px 13px;vertical-align:top}
.prose table th{background:#f1f5ee;font-weight:650;color:#182526}
.prose table tr:nth-child(even) td{background:#fbfcfa}
.prose table caption{caption-side:bottom;font-size:.85rem;color:#6a7874;padding-top:10px;text-align:left}
.table-scroll{overflow-x:auto;margin:30px 0}
.table-scroll table{margin:0}
.prose figure{margin:34px 0}
.prose figure svg,.prose figure img{width:100%;height:auto;display:block;background:#f7faf5;border:1px solid #d2ded5}
.prose figcaption{font-size:.87rem;color:#6a7874;margin-top:10px}
.callout{border-left:3px solid #25573f;background:#f1f5ee;padding:20px 24px;margin:30px 0}
.callout p:last-child{margin-bottom:0}
.callout strong:first-child{color:#183f33}
.callout.warning{border-left-color:#ca5a24;background:#fdf4ee}
.prose h2{margin-top:46px}
.prose h3{margin-top:30px;font-size:1.22rem}
.prose ul,.prose ol{padding-left:22px}
.prose li{margin-bottom:9px}
.key-takeaways{border:1px solid #d2ded5;padding:26px 30px;margin:34px 0;background:#fbfcfa}
.key-takeaways p:first-child{text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:#28624f;margin-bottom:14px}
.key-takeaways ul{margin:0}

/* --- Specialist topic links ------------------------------------------- */
.specialisms{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#d2ded5;border:1px solid #d2ded5;margin:26px 0}
.specialism{background:#fff;padding:22px 24px;display:block;transition:background .18s}
.specialism:hover{background:#f1f5ee;color:inherit}
.specialism strong{display:block;font-size:1.05rem;font-weight:650;letter-spacing:-.02em;margin-bottom:6px;color:#182526}
.specialism:hover strong{color:#126347}
.specialism span{font-size:.9rem;color:#52605e;line-height:1.5}
.prose .specialism{text-decoration:none}
@media (max-width:760px){.specialisms{grid-template-columns:1fr}}

/* --- Enquiry box on topic pages --------------------------------------- */
.enquiry-box{margin:66px 0 10px;background:#10392e;color:#fff;padding:50px 0}
.enquiry-box-inner{width:min(820px,88%);margin:auto}
.enquiry-box .eyebrow{color:#cde4ac}
.enquiry-box h2{color:#fff;max-width:20ch;margin-bottom:16px}
.enquiry-box>.enquiry-box-inner>p{color:#bed3c5;max-width:62ch;margin-bottom:30px}
.enquiry-box .form{background:transparent;padding:0}
.enquiry-box label{display:block;color:#e4efe6;font-size:.9rem;margin-bottom:7px}
.enquiry-box input:not([type=checkbox]),.enquiry-box textarea{width:100%;font:inherit;background:#fff;border:1px solid #6d8c7c;padding:12px;color:#182526;margin-bottom:18px}
.enquiry-box textarea{resize:vertical}
.enquiry-box .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.enquiry-box .consent{display:flex;gap:11px;align-items:flex-start;font-size:.9rem;color:#bed3c5;margin:6px 0 24px}
.enquiry-box .consent input{margin-top:4px;flex:none}
.enquiry-box .consent a{color:#cde4ac;text-decoration:underline}
.enquiry-box .button{background:#d9ecb5;border-color:#d9ecb5;color:#123529}
.enquiry-box .button:hover{background:#e7f3cd;color:#123529}
.enquiry-box-note{font-size:.86rem;color:#9db3a5;margin:18px 0 0}
.enquiry-box .field-error{color:#ffc9b4}
.enquiry-box .field-hint{color:#9db3a5}
.enquiry-box .trap{position:absolute;left:-10000px}
.prose .enquiry-box a{color:#cde4ac}
@media (max-width:700px){
 .enquiry-box .form-row{grid-template-columns:1fr}
 .enquiry-box{padding:38px 0;margin-top:48px}
}

/* --- Back to top ------------------------------------------------------ */
.to-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border:1px solid #173f33;background:#173f33;color:#fff;font-size:1.1rem;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility .25s,background .2s;z-index:50}
.to-top.visible{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:#2f5d46}

@media (max-width:900px){
 .related-grid{grid-template-columns:1fr}
 .faq,.related{padding-top:50px;margin-top:44px}
 .to-top{right:14px;bottom:14px}
 .site-header{position:static}
}

@media (prefers-reduced-motion:reduce){
 .reveal{opacity:1;transform:none;transition:none}
 .faq-answer{transition:none}
 .related-card:hover{transform:none}
 html{scroll-behavior:auto}
}
