@import url("https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Source+Sans+3:wght@400;600;700&display=swap");
:root{--tidevect-bg:#e8ece9;--tidevect-ink:#1a2420;--tidevect-forest:#2f5d46;--tidevect-mist:#c5cec8;--tidevect-paper:#f4f6f4;--tidevect-rule:#9aaca0;}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body.tidevect-body{margin:0;font-family:"Source Sans 3",sans-serif;background:var(--tidevect-bg);color:var(--tidevect-ink);line-height:1.65}
.tidevect-word{font-family:"Libre Baskerville",serif;font-weight:700;text-decoration:none;color:var(--tidevect-forest);font-size:1.35rem}
.tidevect-city{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tidevect-forest)}
.tidevect-header{display:flex;align-items:flex-start;gap:1.5rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--tidevect-rule);background:var(--tidevect-paper)}
.tidevect-brand-stack{display:flex;flex-direction:column;min-width:9rem}
.tidevect-nav-desktop{display:flex;flex-wrap:wrap;gap:.9rem 1.2rem;align-items:center;padding-top:.35rem}
.tidevect-link{color:var(--tidevect-ink);text-decoration:none;font-size:.95rem}.tidevect-link:hover,.tidevect-link.is-active{color:var(--tidevect-forest);text-decoration:underline}
.tidevect-nav-toggle{margin-left:auto;display:none;background:var(--tidevect-forest);color:#fff;border:0;padding:.5rem .85rem;font:inherit;cursor:pointer}
.tidevect-nav-panel{display:none;position:fixed;inset:0 auto 0 0;width:min(18rem,86vw);background:var(--tidevect-paper);padding:4rem 1.25rem 1.25rem;flex-direction:column;gap:1rem;z-index:40;border-right:2px solid var(--tidevect-forest)}
.tidevect-nav-panel.is-open{display:flex}
.tidevect-rail{display:none}
@media(min-width:960px){
  body.tidevect-body{display:grid;grid-template-columns:11rem 1fr;grid-template-rows:auto 1fr auto}
  .tidevect-header{grid-column:2;grid-row:1}
  .tidevect-rail{grid-column:1;grid-row:1/span 3;display:flex;flex-direction:column;gap:1rem;padding:1.5rem 1rem;border-right:1px solid var(--tidevect-rule);background:var(--tidevect-mist)}
  .tidevect-rail .tidevect-link{writing-mode:horizontal-tb}
  .tidevect-nav-desktop{display:flex}
  .tidevect-wrap{grid-column:2}
  .tidevect-footer{grid-column:2}
}
@media(max-width:959px){.tidevect-nav-toggle{display:inline-block}.tidevect-nav-desktop{display:none}}
.tidevect-letterhead{padding:2rem 1.5rem 1rem;border-bottom:3px double var(--tidevect-forest)}
.tidevect-letterhead h1{font-family:"Libre Baskerville",serif;font-size:clamp(2rem,5vw,3.4rem);margin:0 0 .5rem;line-height:1.1}
.tidevect-addr-block{font-size:1.05rem;max-width:36rem}
.tidevect-hero{position:relative;padding:3rem 1.5rem 4rem;background:linear-gradient(135deg,var(--tidevect-forest),#1e3d30);color:#f2f7f4;overflow:hidden}
.tidevect-hero-brand{font-family:"Libre Baskerville",serif;font-size:clamp(3rem,12vw,7rem);line-height:.85;margin:0;opacity:.95;position:relative;z-index:1}
.tidevect-hero-caption{position:relative;z-index:1;max-width:28rem;margin-top:1rem}
.tidevect-hero-caption p{margin:.4rem 0 1rem}
.tidevect-btn{display:inline-block;border:1px solid currentColor;background:transparent;color:inherit;padding:.55rem 1rem;font:inherit;cursor:pointer;text-decoration:none}
.tidevect-btn-solid{background:var(--tidevect-paper);color:var(--tidevect-forest);border-color:var(--tidevect-paper)}
.tidevect-btn-ghost{opacity:.9}
.tidevect-wrap{padding:0 0 3rem}
.tidevect-rule{border:0;border-top:1px solid var(--tidevect-rule);margin:2rem 1.5rem}
.tidevect-services{padding:1rem 1.5rem 2rem;display:grid;gap:1.25rem}
@media(min-width:720px){.tidevect-services{grid-template-columns:repeat(3,1fr)}}
.tidevect-svc h2{font-family:"Libre Baskerville",serif;font-size:1.2rem;margin:0 0 .4rem}
.tidevect-svc p{margin:0;font-size:.95rem}
.tidevect-quote{margin:0 1.5rem;padding:1.5rem;background:var(--tidevect-mist);font-family:"Libre Baskerville",serif;font-size:1.35rem}
.tidevect-colophon{padding:1.5rem;max-width:42rem}
.tidevect-grid-cap{display:grid;gap:1rem;padding:1rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
.tidevect-cap{border:1px solid var(--tidevect-rule);padding:1rem;background:var(--tidevect-paper)}
.tidevect-cap strong{display:block;font-family:"Libre Baskerville",serif;margin-bottom:.35rem}
.tidevect-contact-sticky{position:sticky;bottom:0;background:var(--tidevect-forest);color:#fff;padding:.75rem 1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;z-index:20}
.tidevect-contact-sticky a{color:#fff}
.tidevect-main{padding:2rem 1.5rem;max-width:48rem}
.tidevect-main h1{font-family:"Libre Baskerville",serif}
.tidevect-form{display:grid;gap:.75rem;max-width:28rem}
.tidevect-form input,.tidevect-form textarea{width:100%;padding:.65rem;border:1px solid var(--tidevect-rule);font:inherit;background:#fff}
.tidevect-footer{padding:2rem 1.5rem;display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;border-top:1px solid var(--tidevect-rule)}
.tidevect-stamp pre{margin:0;font-family:ui-monospace,Consolas,monospace;font-size:.82rem;border:1px dashed var(--tidevect-forest);padding:1rem;background:var(--tidevect-paper)}
.tidevect-foot-links{display:flex;flex-wrap:wrap;gap:.75rem 1rem}
.tidevect-foot-links a{color:var(--tidevect-ink);font-size:.9rem}
.tidevect-cookie{position:fixed;bottom:1rem;left:1rem;right:1rem;max-width:28rem;z-index:50;background:var(--tidevect-forest);color:#f2f7f4;padding:1rem;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.tidevect-cookie a{color:#fff}
.tidevect-cookie-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.tidevect-cookie-settings{margin-top:.75rem;display:grid;gap:.35rem}
.tidevect-form-success{margin-top:.75rem;padding:.75rem;background:var(--tidevect-mist)}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .tidevect-hero-caption{opacity:1!important}
}
