:root { --color-background:#F7F1E7; --color-background-alt:#EAD8CF; --color-primary:#52675B; --color-secondary:#A8B5A2; --color-accent:#B9785D; --color-text:#38332F; --color-border:#CFC2B5; --color-surface:#FFFDF9; --font-scale:1; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; font-size:calc(16px * var(--font-scale)); scroll-padding-top:5rem; } body { margin:0; background:var(--color-background); color:var(--color-text); font-family:Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.65; overflow-x:hidden; } h1,h2,h3,.brand,.footer-brand { font-family:"Libre Baskerville",Georgia,serif; } h1,h2,h3 { color:var(--color-text); line-height:1.22; } h1 { font-size:clamp(2.15rem,5vw,4.25rem); letter-spacing:-.035em; } h2 { font-size:clamp(1.75rem,3.7vw,2.8rem); } h3 { font-size:1.15rem; } a { color:var(--color-primary); text-underline-offset:.2em; } a:hover { color:#35483d; } :focus-visible { outline:3px solid var(--color-accent); outline-offset:3px; border-radius:2px; }
.skip-link { background:var(--color-text); color:white; left:1rem; padding:.7rem 1rem; position:fixed; top:-5rem; z-index:2000; } .skip-link:focus { top:1rem; color:#fff; }
.funding-notice { background:#eee4d8; border-bottom:1px solid var(--color-border); padding:1.4rem 0 1.2rem; }.funding-statement { color:var(--color-text); font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(1rem,1.8vw,1.25rem); line-height:1.55; margin:0 0 1.1rem; }.funding-statement span,.funding-programme { color:var(--color-primary); font-weight:700; }.funding-partners { border-top:1px solid rgba(82,103,91,.3); padding-top:1rem; }.funding-logo { display:block; height:auto; max-width:100%; }.funding-logo-eu { max-height:72px; }.funding-logo-dypa { margin-left:auto; max-height:78px; }.funding-programme { font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(.9rem,1.5vw,1.06rem); line-height:1.45; margin:0; }
.site-header { background:rgba(255,253,249,.96); border-bottom:1px solid var(--color-border); } .navbar { min-height:4.7rem; } .brand { color:var(--color-text); font-size:.98rem; line-height:1.25; max-width:18rem; text-decoration:none; } .brand span { display:block; color:var(--color-primary); font-size:1.08rem; margin-top:.1rem; } .navbar-toggler { border:1px solid var(--color-primary); border-radius:0; color:var(--color-primary); font-size:1.45rem; min-height:44px; min-width:48px; } .navbar-toggler:focus { box-shadow:none; } .nav-link { color:var(--color-text); font-size:.94rem; font-weight:700; padding:.7rem .85rem !important; } .nav-link:hover,.nav-link.active { color:var(--color-primary); text-decoration:underline; } .contact-link { background:var(--color-primary); color:#fff !important; margin-left:.5rem; padding-left:1rem!important; padding-right:1rem!important; text-decoration:none!important; } .contact-link:hover { background:#3d5145; }
.section { padding:5.5rem 0; } .section-alt { background:var(--color-background-alt); } .section-sage { background:#dfe5dc; } .eyebrow { color:#744735; font-size:.77rem; font-weight:700; letter-spacing:.12em; margin-bottom:.8rem; text-transform:uppercase; } .hero { padding:6rem 0 5rem; } .hero-copy { font-size:1.05rem; max-width:43rem; } .btn { border-radius:0; font-weight:700; min-height:46px; padding:.65rem 1.1rem; } .btn-primary { background:var(--color-primary); border-color:var(--color-primary); } .btn-primary:hover,.btn-primary:focus { background:#3d5145; border-color:#3d5145; } .btn-outline-primary { border-color:var(--color-primary); color:var(--color-primary); } .btn-outline-primary:hover { background:var(--color-primary); border-color:var(--color-primary); }
.hero-visual { background:#e7d8c5; border:1px solid var(--color-border); height:355px; overflow:hidden; position:relative; } .visual-circle { background:#aab8a5; border-radius:50%; height:250px; position:absolute; right:-55px; top:-55px; width:250px; } .paper { border:1px solid #aaa08f; box-shadow:8px 8px 0 rgba(82,103,91,.16); height:235px; position:absolute; width:180px; } .paper-back { background:#b9785d; left:23%; top:16%; transform:rotate(-8deg); } .paper-front { background:#fffdf9; left:30%; padding:35px 26px; top:14%; transform:rotate(5deg); } .paper-front span { background:#cfc2b5; display:block; height:4px; margin-bottom:16px; width:100%; } .paper-front span:nth-child(2) { width:70%; }.paper-front span:nth-child(3) { width:85%; }.paper-mark { align-items:center; background:var(--color-primary); border-radius:50%; color:white; display:flex; font-family:"Libre Baskerville",serif; font-size:1.25rem; height:55px; justify-content:center; margin-top:25px; width:55px; }.visual-plant { bottom:20px; color:var(--color-primary); font-size:4rem; left:12%; position:absolute; }
.experience { align-items:center; background:var(--color-surface); border:1px solid var(--color-border); display:flex; justify-content:center; min-height:265px; padding:2rem; position:relative; text-align:center; }.experience::before { border:1px solid var(--color-accent); content:""; inset:12px; position:absolute; }.experience span { color:var(--color-accent); font-family:"Libre Baskerville",serif; font-size:6rem; font-weight:700; line-height:1; z-index:1; }.experience strong { color:var(--color-primary); font-family:"Libre Baskerville",serif; font-size:.92rem; margin-left:1rem; text-align:left; z-index:1; }
.section-heading { margin-bottom:2.6rem; max-width:52rem; }.section-heading p:last-child { max-width:46rem; }.services-grid > div { display:flex; }.service-card { background:var(--color-surface); border:1px solid var(--color-border); display:flex; flex-direction:column; height:100%; padding:1.7rem; transition:border-color .2s ease, box-shadow .2s ease; width:100%; }.service-card:hover { border-color:var(--color-primary); box-shadow:0 4px 13px rgba(56,51,47,.10); }.icon-wrap { align-items:center; background:#e6ddd2; border:1px solid var(--color-border); border-radius:50%; color:var(--color-primary); display:flex; font-size:1.45rem; height:48px; justify-content:center; margin-bottom:1.15rem; width:48px; }.service-card p { font-size:.94rem; }.service-card ul { font-size:.89rem; margin:0; padding-left:1.1rem; }.service-card li { margin-bottom:.35rem; }.service-card li::marker { color:var(--color-accent); }
.reasons > div > div { border-top:1px solid rgba(82,103,91,.55); padding:1.2rem .3rem; }.reasons i { color:#744735; font-size:1.35rem; }.reasons h3 { font-size:1.05rem; margin-top:.7rem; }.reasons p { font-size:.94rem; margin-bottom:0; }.contact-note { border-left:3px solid var(--color-accent); display:flex; gap:.8rem; margin-top:2rem; padding:.7rem 0 .7rem 1rem; }.contact-note i { color:#744735; }.contact-note p { font-size:.9rem; margin:0; }.form-control { background:var(--color-surface); border:1px solid #92877d; border-radius:0; color:var(--color-text); min-height:48px; padding:.7rem .8rem; }.form-control:focus { background:#fff; border-color:var(--color-primary); box-shadow:0 0 0 .2rem rgba(82,103,91,.2); }.form-control.is-invalid { border-color:#a62c22; }.field-error { color:#8b231b; font-size:.875rem; font-weight:700; min-height:1.35rem; padding-top:.25rem; }.form-status { color:var(--color-primary); font-weight:700; margin-top:1rem; min-height:1.5rem; }.sensitive-note { font-size:.83rem; margin-top:1.3rem; }.sensitive-note i { color:#744735; }
.honeypot { height:1px; left:-10000px; overflow:hidden; position:absolute; top:auto; width:1px; }
.site-footer { background:#3f5146; color:#f7f1e7; padding:3.5rem 0 1rem; }.site-footer p { font-size:.9rem; }.footer-brand { font-size:1.1rem!important; font-weight:700; }.footer-heading { font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.site-footer ul { list-style:none; margin:0; padding:0; }.site-footer li { margin:.35rem 0; }.site-footer a { color:#fffdf9; }.site-footer a:hover { color:#fff; }.footer-bottom { border-top:1px solid rgba(255,255,255,.28); display:flex; flex-wrap:wrap; gap:.5rem 2rem; justify-content:space-between; margin-top:2rem; padding-top:1.1rem; }.footer-bottom p { margin:0; }
.accessibility-toggle { align-items:center; background:var(--color-text); border:1px solid var(--color-text); bottom:1rem; color:#fff; display:flex; font-size:.86rem; gap:.45rem; min-height:44px; padding:.55rem .8rem; position:fixed; right:1rem; z-index:1100; }.accessibility-panel { background:var(--color-surface); border:1px solid var(--color-text); bottom:4.4rem; box-shadow:0 5px 20px rgba(0,0,0,.15); padding:1rem; position:fixed; right:1rem; width:min(20rem,calc(100vw - 2rem)); z-index:1100; }.accessibility-title { font-family:"Libre Baskerville",serif; font-weight:700; margin-bottom:.65rem; }.accessibility-panel button { background:transparent; border:1px solid var(--color-border); color:var(--color-text); display:block; margin-top:.45rem; min-height:42px; padding:.45rem .6rem; text-align:left; width:100%; }.accessibility-panel button:hover { background:var(--color-background-alt); }
body.high-contrast { --color-background:#fff; --color-background-alt:#fff; --color-primary:#123f2a; --color-secondary:#c4d6c3; --color-accent:#8a260d; --color-text:#111; --color-border:#333; --color-surface:#fff; } body.high-contrast .section-sage { background:#e5eee3; } body.underline-links a:not(.btn):not(.brand) { text-decoration:underline!important; } body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after { animation-duration:.01ms!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
@media (max-width:991.98px) { .navbar-collapse { border-top:1px solid var(--color-border); margin-top:.7rem; padding:.6rem 0; }.contact-link { display:inline-block; margin:.3rem 0; }.hero { padding-top:4rem; }.hero-visual { height:310px; }.section { padding:4.3rem 0; } }
@media (max-width:575.98px) { .funding-notice { padding:.95rem 0; }.funding-statement { font-size:1rem; }.funding-logo-eu { max-height:58px; }.funding-logo-dypa { margin-left:0; max-height:65px; }.brand { font-size:.8rem; max-width:14rem; }.brand span { font-size:.9rem; }.hero-visual { height:270px; }.paper-back { left:15%; }.paper-front { left:23%; }.experience { min-height:220px; }.experience span { font-size:4.5rem; }.experience strong { font-size:.75rem; }.accessibility-toggle span { display:none; }.accessibility-toggle { padding:.65rem; }.section { padding:3.8rem 0; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
