@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,500;6..96,700&family=Source+Sans+3:wght@400;500;600&display=swap');
:root {
  --ct-bg:#1a3328; --ct-fg:#e6f0e8; --ct-muted:#9bb5a4; --ct-accent:#c4d6a5;
  --ct-panel:#234033; --ct-line:#3d5a48;
  --ct-display:"Bodoni Moda", Georgia, serif;
  --ct-body:"Source Sans 3", Georgia, serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body.ct-body{margin:0;font-family:var(--ct-body);background:var(--ct-bg);color:var(--ct-fg);line-height:1.65}
a{color:var(--ct-accent);text-decoration-thickness:1px}
a:hover{opacity:.85}
img{display:none}
.ct-btn{appearance:none;border:1px solid var(--ct-accent);background:var(--ct-accent);color:var(--ct-bg);padding:.75rem 1.2rem;font:inherit;cursor:pointer}
.ct-btn-ghost{background:transparent;color:var(--ct-fg);border-color:var(--ct-line)}
.ct-form{display:grid;gap:1rem;max-width:32rem}
.ct-form label{display:grid;gap:.35rem;font-size:.92rem}
.ct-form input,.ct-form textarea{font:inherit;padding:.7rem .8rem;border:1px solid var(--ct-line);background:var(--ct-panel);color:var(--ct-fg)}
.ct-form-success{color:var(--ct-accent);font-weight:600}
.ct-contact-block p{margin:.25rem 0}
.ct-skip{position:absolute;left:-999px}
.ct-skip:focus{left:1rem;top:1rem;background:var(--ct-panel);padding:.5rem;z-index:100}

.ct-body{display:grid}
@media(min-width:960px){
  .ct-body{grid-template-columns:14rem 1fr}
  .ct-rail{position:sticky;top:0;height:100vh;padding:1.5rem 1rem;border-right:1px solid var(--ct-line);display:flex;flex-direction:column;gap:1rem}
  .ct-rail nav{display:flex;flex-direction:column;gap:.6rem}
  .ct-rail a{color:var(--ct-fg);text-decoration:none;font-size:.9rem}
  .ct-topmobile{display:none}
  .ct-menu-btn{display:none}
  main,#main{grid-column:2}
  .ct-footer{grid-column:1/-1}
  .ct-cookie{grid-column:1/-1}
}
.ct-topmobile{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--ct-line)}
.ct-topmobile a{color:inherit;text-decoration:none;font-family:var(--ct-display)}
.ct-menu-btn{border:1px solid var(--ct-line);background:var(--ct-panel);color:var(--ct-fg);padding:.4rem .7rem}
.ct-nav-panel{display:none;flex-direction:column;gap:.6rem;padding:1rem;background:var(--ct-panel)}
.ct-nav-panel[data-open="true"]{display:flex}
@media(min-width:960px){.ct-nav-panel{display:none!important}.ct-rail{display:flex}.ct-header{display:contents}}
@media(max-width:959px){.ct-rail{display:none}}
.ct-logo{font-family:var(--ct-display);font-size:1.3rem;text-decoration:none;color:var(--ct-accent)}
.ct-hero-cta{min-height:100vh;display:grid;place-content:center;text-align:center;padding:2rem;background:var(--ct-panel)}
.ct-brand{font-family:var(--ct-display);font-size:clamp(2.5rem,7vw,4.2rem);margin:0 0 1.5rem;color:var(--ct-accent)}
.ct-process{padding:3rem 1.5rem;max-width:36rem}
.ct-process ol{list-style:none;padding:0;margin:0}
.ct-process li{padding:1.2rem 0 1.2rem 1.5rem;border-left:2px solid var(--ct-line);margin-left:.3rem}
.ct-process h2{font-family:var(--ct-display);font-size:1.5rem;margin:0 0 .4rem}
.ct-masonry{column-count:1;column-gap:1rem;padding:1.5rem}
@media(min-width:700px){.ct-masonry{column-count:2}}
.ct-masonry article{break-inside:avoid;margin-bottom:1rem;padding:1.2rem;background:var(--ct-panel);border:1px solid var(--ct-line)}
.ct-wide{padding:1.8rem 1.2rem}
.ct-about-lite{padding:2rem 1.5rem 4rem;max-width:40rem}
.ct-footer{padding:1rem 1.2rem 2rem;border-top:1px solid var(--ct-line);background:var(--ct-panel)}
.ct-util{font-size:.88rem;margin:0 0 .8rem}
.ct-page{padding:2rem 1.5rem;max-width:40rem}
.ct-page h1{font-family:var(--ct-display);color:var(--ct-accent)}
.ct-indent{margin-left:clamp(0rem,6vw,3rem)}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.ct-cookie{position:fixed;z-index:90;max-width:24rem}
.ct-cookie-inner{padding:1rem 1.1rem;border:1px solid var(--ct-line)}
.ct-cookie-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.ct-cookie-settings{display:grid;gap:.5rem;margin-top:.75rem}
.ct-cookie-text{margin:0;font-size:.9rem}
.ct-cookie{bottom:0;left:0;right:0;max-width:none}.ct-cookie-inner{background:var(--ct-panel);border-top:3px solid var(--ct-accent)}