:root{
  --ink:#14213D;      /* deep navy: headings, band */
  --text:#2C3546;     /* body text */
  --muted:#5F697A;    /* secondary text */
  --paper:#FFFFFF;
  --panel:#EEF1F5;    /* cool grey sections */
  --rule:#D3D9E1;
  --accent:#2A5C9A;   /* links, buttons */
  --accent-dark:#1E4677;
  --serif:"Libre Caslon Text", Georgia, "Times New Roman", serif;
  --sans:"Source Sans 3", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--text);font:400 1.0625rem/1.65 var(--sans)}
img{max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--accent-dark)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:400;line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(2rem,4.5vw,3rem)}
h2{font-size:clamp(1.45rem,2.6vw,1.85rem)}
h3{font-size:1.15rem;font-weight:700}
p{margin:0 0 1em}
ul,ol{margin:0 0 1.2em;padding-left:1.2em}
li{margin-bottom:.35em}
.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 1.5rem}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:10}
.skip:focus{left:0}

/* header */
.site-head{border-bottom:1px solid var(--rule);background:var(--paper)}
.head-inner{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;padding-top:1.1rem;padding-bottom:1.1rem}
.brand{font-family:var(--serif);font-size:1.3rem;color:var(--ink);text-decoration:none;margin-right:auto;line-height:1.1}
.brand span{color:var(--muted)}
.nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.nav a{color:var(--text);text-decoration:none;font-weight:600;font-size:.98rem;padding:.2rem 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--accent)}
.nav a[aria-current="page"]{border-bottom-color:var(--ink);color:var(--ink)}
.lang-switch{font-size:.92rem;font-weight:600;text-decoration:none;border:1px solid var(--rule);border-radius:999px;padding:.25rem .85rem;color:var(--ink)}
.lang-switch:hover{border-color:var(--ink);color:var(--ink)}
@media (max-width:760px){
  .head-inner{gap:.8rem 1rem}
  .brand{font-size:1.12rem}
  .nav{order:3;flex-basis:100%;gap:.35rem .9rem}
  .nav a{font-size:.92rem}

}

/* hero */
.hero{padding-top:clamp(3rem,8vw,6.5rem);padding-bottom:clamp(3rem,7vw,5.5rem)}
.hero h1{font-size:clamp(2.6rem,7.2vw,5.2rem);line-height:1.02;letter-spacing:-.01em;margin-bottom:.45em;max-width:16ch}
.hero h1 span{display:block}
.hero h1 .h1-sub{font-size:max(.42em,1.25rem);line-height:1.3;letter-spacing:0;color:var(--muted);font-style:italic;margin-top:.55em;max-width:30ch}
.lead{font-size:1.2rem;line-height:1.55;color:var(--text);max-width:60ch}
.creds{list-style:none;padding:0;margin:2.2rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem 0;color:var(--muted);font-size:.95rem}
.creds li{margin:0;padding-right:1rem;margin-right:1rem;border-right:1px solid var(--rule)}
.creds li:last-child{border-right:0}

/* buttons */
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;padding:.8rem 1.4rem;border-radius:4px;border:1px solid var(--accent);line-height:1.3;overflow-wrap:anywhere}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}
.btn-quiet{background:transparent;color:var(--accent)}
.btn-quiet:hover{background:var(--accent);color:#fff}
.btn-light{background:#fff;color:var(--ink);border-color:#fff}
.btn-light:hover{background:var(--panel);border-color:var(--panel);color:var(--ink)}
.actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.8rem}
.more{font-weight:600;text-decoration:none}
.more:hover{text-decoration:underline}

/* sections */
main > section.wrap, main > div.wrap{margin-bottom:clamp(3.5rem,8vw,5.5rem)}
main > section.feature{margin-bottom:0}
.sec-h{margin-bottom:1.6rem}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2.5rem;border-top:1px solid var(--rule);padding-top:2.5rem}
.prose{max-width:66ch}
@media (max-width:760px){.split{grid-template-columns:1fr;gap:.5rem}}

.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 3rem}
.svc{border-top:2px solid var(--ink);padding-top:1.2rem;display:flex;flex-direction:column}
.svc h3{font-size:1.35rem;font-weight:400}
.svc p{flex:1}
.facts{list-style:none;padding:0;margin:0 0 1rem;color:var(--muted);font-size:.97rem}
.facts li{margin:0 0 .2rem;padding-left:1rem;position:relative}
.facts li::before{content:"";position:absolute;left:0;top:.7em;width:.45rem;height:1px;background:var(--muted)}
@media (max-width:760px){.svc-grid{grid-template-columns:1fr}}

.why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}
.why > div{border-left:1px solid var(--rule);padding-left:1.25rem}
@media (max-width:860px){.why{grid-template-columns:1fr;gap:1.5rem}}

/* featured testimonial */
.feature{background:var(--panel);padding:clamp(3rem,7vw,5rem) 0}
.feature blockquote{max-width:58ch}
.feature blockquote{margin:0 0 1rem;font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.5;color:var(--ink)}
.feature blockquote p{margin:0}
.t-name{font-weight:600;color:var(--ink);margin:0 0 1.2rem}

/* closing band */
.band{background:var(--ink);color:#DCE3EE;padding:clamp(3rem,7vw,4.5rem) 0}
.band h2{color:#fff}
.band p{max-width:58ch}
.band a:not(.btn){color:#fff}
.band-mail{margin-top:1.4rem;font-size:.97rem}

/* inner pages */
main > .page-head{padding-top:clamp(2.5rem,6vw,4.5rem);margin-bottom:2.5rem}
.page-head h1{max-width:22ch}
.prose-page{max-width:calc(68ch + 3rem)}
.prose-page h2{margin-top:2.2rem}
.prose-page.small h2{font-size:1.3rem;margin-top:1.8rem}
.jump{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}
.jump a{border:1px solid var(--rule);border-radius:999px;padding:.35rem .95rem;text-decoration:none;font-weight:600;font-size:.95rem;color:var(--ink)}
.jump a:hover{border-color:var(--ink)}

.svc-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:0 3rem;border-top:2px solid var(--ink);padding:2.2rem 0 3rem;scroll-margin-top:1.5rem}
.svc-block > h2{grid-column:1;grid-row:1 / span 3}
.svc-block > *:not(h2){grid-column:2}
.svc-body{max-width:66ch}
.svc-body h3{margin-top:1.6rem}
.svc-body h3:first-child{margin-top:0}
.price{font-family:var(--serif);font-size:1.2rem;color:var(--ink);margin:.4rem 0 1.2rem}
.svc-block .btn{justify-self:start}
.steps{padding-left:1.4rem}
@media (max-width:760px){.svc-block{grid-template-columns:1fr}.svc-block > h2,.svc-block > *:not(h2){grid-column:1;grid-row:auto}}

.contact-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:3rem;align-items:start}
.contact-grid .prose h2{font-size:1.35rem;margin-top:1.6rem}
.contact-grid .prose h2:first-child{margin-top:0}
.contact-card{background:var(--panel);padding:1.8rem;border-top:2px solid var(--ink)}
.contact-card h2{font-size:1.35rem}
.contact-card h3{margin-top:1.6rem;font-size:1rem}
.contact-card .btn{margin-bottom:1rem;font-size:.95rem}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* testimonials page */
.t-list{display:grid;gap:0}
.t{max-width:820px}
.t{margin:0;padding:2.4rem 0;border-top:1px solid var(--rule)}
.t:first-child{border-top:2px solid var(--ink)}
.t-main{margin:0 0 1rem;font-family:var(--serif);font-size:1.12rem;line-height:1.75;color:var(--ink)}
.t-main p{margin:0 0 .8em}
.t-main p:last-child{margin-bottom:0}
.t .t-name{margin-bottom:.2rem}
.t-label{color:var(--muted);font-size:.9rem;margin:0}
.t-other{margin-top:1rem;font-size:.97rem;color:var(--muted)}
.t-other summary{cursor:pointer;font-weight:600;color:var(--accent);width:fit-content}
.t-other summary:hover{color:var(--accent-dark)}
.t-other > div{margin-top:.8rem;padding-left:1rem;border-left:2px solid var(--rule)}

/* footer */
.site-foot{background:var(--panel);border-top:1px solid var(--rule);padding:2.5rem 0 1.5rem;font-size:.95rem;color:var(--muted)}
.foot-inner{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.site-foot strong{color:var(--ink);font-family:var(--serif);font-weight:400;font-size:1.05rem}
.copy{font-size:.85rem;margin-top:1rem}

@media (max-width:760px){.creds{flex-direction:column}.creds li{border-right:0;padding-right:0;margin-right:0}}
