/*
Theme Name: TheServerDoctor
Theme URI: https://www.theserverdoctor.com/
Author: TheServerDoctor
Description: Responsive, Elementor-free business theme for TheServerDoctor. Works with TheServerDoctor Site Manager plugin.
Version: 0.3.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: theserverdoctor
License: GPL-2.0-or-later
*/
:root{--ink:#121c32;--navy:#071326;--navy-2:#101b36;--muted:#536179;--surface:#f5f8ff;--border:#dfe6f4;--blue:#268aff;--purple:#c229fb;--gradient:linear-gradient(110deg,#c328f4 0%,#6b55f4 48%,#268eff 100%);--max:1160px;--radius:18px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.62;background:#fff}img{max-width:100%;height:auto}a{color:inherit}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:3px}::selection{background:#725cff;color:#fff}.wrap{width:min(calc(100% - 2.5rem),var(--max));margin-inline:auto}.skip-link{position:absolute;left:1rem;top:-10rem;padding:.7rem 1rem;z-index:999;background:#fff;color:#111}.skip-link:focus{top:1rem}.site-header{background:#071021;color:#fff;position:relative;z-index:20;border-bottom:1px solid #ffffff1a}.site-header-inner{display:flex;align-items:center;gap:2rem;min-height:92px}.brand{flex:0 0 auto}.site-logo-link,.custom-logo-link{display:flex;align-items:center}.site-logo,.custom-logo{width:min(258px,38vw);height:auto;object-fit:contain}.primary-navigation{margin-left:auto}.site-nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:1.5rem}.site-nav-list a{color:#e9efff;text-decoration:none;font-size:.93rem;font-weight:650;transition:color .2s}.site-nav-list a:hover,.site-nav-list a:focus-visible{color:#9ad1ff}.site-nav-list .current-menu-item>a{color:#94bbff}.header-cta{padding:.73rem 1rem;border-radius:10px;color:#fff;text-decoration:none;border:1px solid #476b9d;font-weight:650;white-space:nowrap}.header-cta:hover{background:#183258}.menu-toggle{display:none;align-items:center;gap:.5rem;background:transparent;color:#fff;border:1px solid #4f638b;padding:.58rem .75rem;border-radius:9px;cursor:pointer}.menu-toggle-icon{width:18px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}.menu-toggle-icon:after{content:"";position:absolute;top:4px;left:0;width:100%;border-top:2px solid currentColor}.hero{position:relative;overflow:hidden;min-height:630px;background:var(--navy);color:#fff}.hero-visual{position:absolute;inset:0;background-image:linear-gradient(90deg,#061125 0%,#061125f5 37%,#06112575 70%,#06112545 100%),url('assets/images/network-fibers.webp');background-position:center,right center;background-size:cover;opacity:.95}.hero::after{content:"";pointer-events:none;position:absolute;inset:auto -10% -30px -10%;height:50px;background:linear-gradient(90deg,#c52bff,#3d91ff);transform:skewY(-1.5deg)}.hero-content{position:relative;z-index:1;padding-top:114px;padding-bottom:116px}.eyebrow,.kicker{color:#326cff;display:inline-block;font-size:.75rem;letter-spacing:.15em;font-weight:800}.eyebrow{color:#c3b7ff}.eyebrow-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a44cff;margin-right:9px;box-shadow:0 0 16px #ae41fa}.hero h1{max-width:800px;margin:1rem 0 1.5rem;font-size:clamp(2.8rem,6.2vw,5.3rem);line-height:1.07;letter-spacing:-.055em;font-weight:830}.hero-lede{max-width:690px;font-size:clamp(1.07rem,1.65vw,1.26rem);color:#d3e1f8}.button-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:2rem}.button{display:inline-flex;justify-content:center;align-items:center;gap:.8rem;padding:.89rem 1.25rem;border-radius:10px;text-decoration:none;font-weight:750;line-height:1.25;min-height:48px;transition:transform .15s,box-shadow .15s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--gradient);color:#fff;box-shadow:0 8px 25px #432c972c}.button-ghost{color:#fff;border:1px solid #6575968c;background:#ffffff0a}.button-ghost:hover{background:#ffffff17}.hero-proof{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:3.2rem;color:#d4dbed;font-size:.85rem}.hero-proof span:before{content:'✓';color:#85baff;font-weight:800;margin-right:8px}.section{padding:90px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:3.5rem;margin-bottom:2rem}.section-heading>*{flex:1}.section-heading p{max-width:480px;color:var(--muted);margin:0}.section h2,.vermont-section h2{font-size:clamp(2rem,3.5vw,3.1rem);letter-spacing:-.04em;line-height:1.17;margin:.6rem 0 1.3rem}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.service-card{background:#fff;border:1px solid var(--border);padding:2rem;border-radius:var(--radius);box-shadow:0 14px 50px #15254a09;display:flex;flex-direction:column}.service-card:hover{border-color:#9ca7f8}.service-card h3{margin:.8rem 0 .5rem;font-size:1.36rem;letter-spacing:-.02em}.service-card p{color:var(--muted);margin:.4rem 0 1.5rem;flex-grow:1}.service-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:#dce8ff;color:#5368fc;font-size:2rem}.service-card:nth-child(3n+2) .service-icon{background:#f4e0ff;color:#a637d8}.service-card:nth-child(3n+3) .service-icon{background:#daecff;color:#277dd5}.text-link{color:#2665bd;font-weight:750;text-decoration:none}.text-link:hover{text-decoration:underline}.section-approach{background:#f4f7fe}.approach-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,5vw,6rem)}.approach-grid p{color:var(--muted)}.approach-grid .intro-copy{font-size:1.16rem;color:#344568}.approach-grid .text-link{display:inline-block;margin-top:1rem}.approach-image{min-height:345px;border-radius:25px;background:#192849 url('assets/images/digital-infrastructure.webp') center/cover;box-shadow:0 16px 60px #142d5538}.vermont-section{background-image:linear-gradient(90deg,#06152ddd,#06152dc2 60%,#06152d38),url('assets/images/vermont-lake.webp');background-size:cover;background-position:center 46%;color:#fff;min-height:360px;display:flex;align-items:center;padding:60px 0}.vermont-content{max-width:1160px}.vermont-content h2,.vermont-content p{max-width:625px}.vermont-content p{color:#edf1fc;font-size:1.1rem}.kicker-light{color:#c7bdff}.section-cta{background:#fff}.cta-panel{background:linear-gradient(117deg,#f1e6ff,#eef5ff);border:1px solid #e8e2ff;border-radius:24px;padding:2.7rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-panel h2{margin:.3rem 0 .4rem;font-size:clamp(1.8rem,3vw,2.7rem)}.cta-panel p{margin:0;color:var(--muted)}.cta-panel .button{flex:0 0 auto}.page-hero{padding:90px 0 100px;color:#fff;background-image:linear-gradient(90deg,#09162afc 0%,#08172aef 48%,#0e1f4db8),url('assets/images/network-fibers.webp');background-position:center;background-size:cover}.page-hero h1{font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.09;letter-spacing:-.045em;max-width:840px;margin:.7rem 0 1.2rem}.page-hero p{max-width:660px;color:#c9d8f1;font-size:1.2rem}.services-detail-list{padding-top:18px;padding-bottom:35px}.service-detail{display:grid;grid-template-columns:68px minmax(0,1.25fr) minmax(0,1fr);gap:1.7rem;padding:65px 0;border-bottom:1px solid var(--border);scroll-margin-top:30px}.service-detail-number{font-size:1.85rem;font-weight:850;color:#b2bfdf}.service-detail h2{font-size:2.2rem;line-height:1.2;letter-spacing:-.035em;margin:.6rem 0}.service-summary{color:#536179;font-size:1.1rem;max-width:560px}.check-list{list-style:none;margin:0;padding:0}.check-list li{position:relative;padding:.42rem .4rem .42rem 1.8rem;border-bottom:1px solid #e8eef8}.check-list li:before{content:'✓';position:absolute;left:0;color:#3984f1;font-weight:850}.editorial-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:6rem}.prose{font-size:1.075rem;line-height:1.82;color:#3a4658}.prose p{margin:0 0 1.25em}.prose a{color:#275dba}.prose h2,.prose h3{line-height:1.3;color:#182338}.page-content{max-width:860px;margin-inline:auto}.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.partner-card{padding:1.6rem;border:1px solid var(--border);border-radius:16px}.partner-card h3{margin-top:0}.partner-card p{color:var(--muted)}.muted-notice{padding:1.5rem;border-left:4px solid #5368fb;background:#f4f7ff}.contact-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:4rem;align-items:start}.contact-main h2{margin:.2rem 0 1.5rem;font-size:2rem}.contact-sidebar{padding:2rem;border-radius:20px;background:#f2f6ff;border:1px solid var(--border)}.contact-sidebar h2{margin-top:0}.contact-sidebar h3{font-size:.9rem;color:#516385;text-transform:uppercase;letter-spacing:.06em;margin:1.4rem 0 .3rem}.contact-sidebar a{color:#285fb4;font-weight:650}.contact-sidebar p{color:#56637a}.tsd-contact-form{display:grid;gap:1.1rem}.form-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}.tsd-field{display:flex;flex-direction:column;gap:.35rem}.tsd-field label,.tsd-form-label{font-weight:650;font-size:.9rem}.tsd-field input,.tsd-field textarea{width:100%;border:1px solid #aebad0;border-radius:9px;background:#fff;color:#15233f;min-height:48px;padding:.7rem .85rem}.tsd-field textarea{min-height:150px;resize:vertical}.tsd-field input:focus,.tsd-field textarea:focus{border-color:#436fe9;box-shadow:0 0 0 3px #367aff20;outline:none}.required{color:#ad1c5d}.tsd-form-choices{border:1px solid var(--border);padding:1rem;border-radius:12px}.tsd-form-choices legend{font-weight:700;padding:0 .4rem}.tsd-choices{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.tsd-checkbox{display:flex;align-items:flex-start;gap:.7rem}.tsd-checkbox input{width:18px;height:18px;flex:0 0 auto;margin:.28rem 0 0;accent-color:#3971f1}.tsd-consent{font-size:.9rem;color:#49566d}.tsd-consent a{color:#2b5aba;text-decoration:underline}.form-message{padding:.9rem 1rem;border-radius:10px}.form-message.success{background:#e5f8ed;border:1px solid #6caf84;color:#153e25}.form-message.error{background:#fff0f3;border:1px solid #e0a0b0;color:#682338}.tsd-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.site-footer{background:#080f20;color:#c4cfe4;padding:68px 0 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr;gap:4rem}.footer-brand img{width:min(300px,100%);height:auto}.footer-brand p{max-width:360px;color:#a0b1ce}.site-footer h2{font-size:.94rem;color:#fff;text-transform:uppercase;letter-spacing:.09em;margin:0 0 1.1rem}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{padding:.25rem 0}.site-footer a{color:#cbdaf1;text-decoration:none}.site-footer a:hover{text-decoration:underline;color:#fff}.site-footer p{margin:.35rem 0 .95rem}.footer-bottom{border-top:1px solid #293148;margin-top:60px;padding:1.3rem 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:#91a4c5}.footer-legal{display:flex;flex-wrap:wrap;gap:1.2rem}.post-list{display:grid;gap:1rem}.post-card{border:1px solid var(--border);padding:1.4rem;border-radius:15px}.post-card h2{margin-top:0}.post-card a{text-decoration:none}
@media(max-width:1020px){.header-cta{display:none}.site-header-inner{min-height:82px}.site-logo{width:230px}.site-nav-list{gap:1rem}.service-detail{grid-template-columns:45px 1fr 1fr;gap:1.25rem}}
@media(max-width:800px){.site-header-inner{min-height:76px;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.menu-toggle{display:inline-flex}.primary-navigation{display:none;flex:0 0 100%;width:100%;margin:0;padding-bottom:1rem}.primary-navigation.is-open{display:block}.site-nav-list{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-nav-list li{border-top:1px solid #273451}.site-nav-list a{display:block;padding:.8rem .25rem;font-size:1.05rem}.hero{min-height:auto}.hero-content{padding-top:87px;padding-bottom:98px}.hero-visual{background-image:linear-gradient(100deg,#061125f5,#061125c1 80%),url('assets/images/network-fibers.webp')}.section{padding:64px 0}.section-heading{display:block}.service-grid{grid-template-columns:repeat(2,1fr)}.approach-grid,.editorial-grid{grid-template-columns:1fr;gap:2.3rem}.approach-image{min-height:280px}.service-detail{grid-template-columns:1fr;gap:.6rem;padding:45px 0}.service-detail-number{font-size:1.25rem}.contact-layout{grid-template-columns:1fr;gap:2rem}.footer-grid{grid-template-columns:1.5fr 1fr;gap:2rem}.footer-grid>div:last-child{grid-column:1/-1}.partner-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.wrap{width:min(calc(100% - 2rem),var(--max))}.site-logo{width:225px}.hero h1{font-size:clamp(2.55rem,11vw,3.7rem)}.hero-content{padding-top:68px;padding-bottom:80px}.hero-proof{gap:.5rem 1rem}.hero-proof span{flex-basis:100%}.button-row{align-items:stretch}.button-row .button{width:100%}.section{padding:50px 0}.service-grid,.partner-grid{grid-template-columns:1fr}.cta-panel{padding:1.8rem;align-items:stretch;flex-direction:column}.cta-panel .button{width:100%}.vermont-section{min-height:330px}.page-hero{padding:62px 0 74px}.form-two-col,.tsd-choices{grid-template-columns:1fr}.contact-sidebar{padding:1.45rem}.footer-grid{grid-template-columns:1fr;gap:2.2rem}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{margin-top:42px}.approach-image{min-height:220px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* v0.2.0: readable action buttons while retaining the purple/blue brand gradient in highlights. */
.button-primary{background:linear-gradient(110deg,#8322ac 0%,#5544b3 48%,#145ba3 100%);color:#fff}
.eyebrow,.kicker{letter-spacing:.13em}
.kicker{color:#2757b8}
.legacy-anchor{position:relative;display:block;scroll-margin-top:1.5rem}
.service-detail{scroll-margin-top:1.5rem}
/* Standard WordPress nested menus must work with pointer, keyboard and narrow screens. */
.site-nav-list>li{position:relative}
.site-nav-list .sub-menu{display:none;position:absolute;z-index:35;top:100%;left:0;min-width:245px;margin:0;padding:.5rem;list-style:none;background:#101e39;border:1px solid #314563;border-radius:11px;box-shadow:0 15px 36px #0005}
.site-nav-list li:hover>.sub-menu,.site-nav-list li:focus-within>.sub-menu{display:block}
.site-nav-list .sub-menu li{margin:0}
.site-nav-list .sub-menu a{display:block;padding:.6rem .85rem;border-radius:5px;white-space:normal}
.site-nav-list .sub-menu a:hover,.site-nav-list .sub-menu a:focus-visible{background:#25375b}
.site-nav-list a:focus-visible,.header-cta:focus-visible,.button:focus-visible{outline:3px solid #f7cf70;outline-offset:4px}
.prose ul,.prose ol{padding-left:1.55rem}.prose li{margin-bottom:.45rem}
.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid #dbe4f3;padding:.6rem;text-align:left}
.prose img{height:auto;max-width:100%}
.prose pre{overflow-x:auto;padding:1rem;background:#eff3fc;border-radius:10px}
.prose a{overflow-wrap:anywhere}
.tsd-contact-form .description{font-size:.83rem;color:#5c687c;margin:.15rem 0}
.tsdm-captcha{min-height:64px}
.page-content h2:first-child{margin-top:0}
@media(max-width:800px){
  .site-nav-list .sub-menu,.site-nav-list li:hover>.sub-menu,.site-nav-list li:focus-within>.sub-menu{position:static;display:block;min-width:0;background:#0b1b33;border:0;border-radius:0;padding:0 0 .4rem 1rem;box-shadow:none}
  .site-nav-list .sub-menu li{border:0}
  .site-nav-list .sub-menu a{font-size:.95rem;padding:.6rem .8rem}
}

.kicker.kicker-light{color:#d4caff}
/* Editable Media Library overrides; absent IDs retain bundled original artwork. */
.hero-visual{background-image:linear-gradient(90deg,#061125 0%,#061125f5 37%,#06112575 70%,#06112545 100%),var(--tsd-hero-image,url('assets/images/network-fibers.webp'))}
.page-hero{background-image:linear-gradient(90deg,#09162afc 0%,#08172aef 48%,#0e1f4db8),var(--tsd-hero-image,url('assets/images/network-fibers.webp'))}
.approach-image{background-image:var(--tsd-approach-image,url('assets/images/digital-infrastructure.webp'));background-size:cover;background-position:center}
.vermont-section{background-image:linear-gradient(90deg,#06152ddd,#06152dc2 60%,#06152d38),var(--tsd-vermont-image,url('assets/images/vermont-lake.webp'))}
@media(max-width:800px){.hero-visual{background-image:linear-gradient(100deg,#061125f5,#061125c1 80%),var(--tsd-hero-image,url('assets/images/network-fibers.webp'))}}

/* v0.2.1 — larger readable identity, richer editorial sections, restrained motion */
:root{--max:1230px}
.site-header-inner{min-height:106px;gap:1.7rem}
.site-logo,.custom-logo{width:360px;max-width:100%;height:auto;display:block}
.site-nav-list{gap:1.25rem}
.header-cta{padding:.82rem 1.12rem}
.hero{isolation:isolate;min-height:620px}
.hero-content{padding-top:108px;padding-bottom:110px}
.hero h1{max-width:780px;font-size:clamp(3rem,5vw,4.9rem);letter-spacing:-.052em}
.hero-lede{max-width:710px;font-size:clamp(1.08rem,1.5vw,1.2rem);line-height:1.72}
.hero-visual{inset:-4%;will-change:auto;background-position:right center}
.hero-glow,.hero-sheen{position:absolute;pointer-events:none;inset:0;z-index:0;opacity:.42}
.hero-glow{background:radial-gradient(ellipse 500px 290px at 72% 40%,#1e96e637,transparent 70%),radial-gradient(ellipse 400px 260px at 42% 72%,#9328ec1b,transparent 75%)}
.hero-sheen{inset:-30% -20% 0 25%;background:linear-gradient(115deg,transparent 39%,#6ecbff12 49%,transparent 60%);opacity:.22;transform:rotate(-6deg)}
.hero--animated .hero-visual{animation:tsd-hero-drift 26s ease-in-out infinite alternate;will-change:transform}
.hero--animated .hero-glow{animation:tsd-glow-drift 18s ease-in-out infinite alternate;will-change:transform,opacity}
.hero--animated .hero-sheen{animation:tsd-sheen-drift 24s ease-in-out infinite alternate;will-change:transform,opacity}
@keyframes tsd-hero-drift{from{transform:translate3d(-.8%,0,0) scale(1.015)}to{transform:translate3d(1.2%,-.7%,0) scale(1.065)}}
@keyframes tsd-glow-drift{from{transform:translate3d(-2%,0,0);opacity:.25}to{transform:translate3d(3%,1.3%,0);opacity:.54}}
@keyframes tsd-sheen-drift{from{transform:translate3d(-6%,0,0) rotate(-6deg);opacity:.08}to{transform:translate3d(7%,0,0) rotate(-6deg);opacity:.28}}

.section-heading h2{max-width:650px}
.section-heading p,.section-lede{line-height:1.78}
.section-challenges{background:linear-gradient(140deg,#f6f8fe,#eff4fd)}
.challenge-grid,.step-grid,.value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:2.2rem}
.challenge-card,.step-card,.value-card{border:1px solid #dce5f5;border-radius:18px;padding:2rem;background:#fff;box-shadow:0 15px 35px #172e4d07}
.challenge-number,.step-number{display:inline-block;color:#496eda;font-weight:800;font-size:.92rem;letter-spacing:.17em}
.challenge-card h3,.step-card h3,.value-card h3{font-size:1.28rem;letter-spacing:-.02em;line-height:1.3;margin:1rem 0 .7rem;color:#18243d}
.challenge-card p,.step-card p,.value-card p{color:var(--muted);line-height:1.76;margin:.5rem 0 0}
.section-steps{background:#fff}
.step-card{background:#f7f9ff;border-color:#e2eaf6;box-shadow:none;position:relative}
.step-card:not(:last-child):after{content:'→';position:absolute;right:-1.03rem;top:49%;color:#4c66c5;z-index:2;font-size:1.7rem}
.section-approach .prose{max-width:650px}
.section-approach .text-link{display:inline-block;margin-top:1rem}
.prose-light,.prose-light p{color:#e9f2ff}
.prose-light p{max-width:710px;line-height:1.78}
.vermont-section{min-height:470px}
.vermont-content h2{max-width:760px}
.section-intro{padding:75px 0 50px;border-bottom:1px solid #e6edf8;background:#f9fbff}
.intro-grid{display:grid;grid-template-columns:.85fr 1fr;gap:6rem;align-items:start}
.intro-grid h2{margin:.6rem 0 0}
.intro-grid .prose p{margin:0}
.services-detail-list{padding-top:0;padding-bottom:30px}
.service-detail{grid-template-columns:56px minmax(0,1.35fr) minmax(250px,.8fr);gap:2.2rem;padding:80px 0}
.service-detail h2{font-size:clamp(2rem,3vw,2.65rem)}
.service-summary{font-weight:560;font-size:1.15rem;color:#3d5170;line-height:1.65}
.service-body{margin-top:1.6rem;font-size:1.02rem;color:#46546b;line-height:1.83}
.service-body p{margin:0 0 1.35rem}
.service-benefit{padding:1.5rem 1.65rem;margin-top:1.9rem;border:1px solid #dedcf7;border-radius:15px;background:#f6f3ff}
.service-benefit strong{display:block;color:#4c3caa;font-size:.92rem;text-transform:uppercase;letter-spacing:.07em}
.service-benefit p{margin:.65rem 0 0;line-height:1.72;color:#39445c}
.service-detail-aside{background:#f7f9fe;padding:1.8rem;border-radius:18px;align-self:start;border:1px solid #e4eaf4}
.service-detail-aside h3{font-size:1.05rem;letter-spacing:-.01em;margin:0 0 1.1rem}
.service-detail-aside .check-list li{border-color:#e2e8f2;font-size:.96rem;line-height:1.5}
.service-aside-note{font-size:.86rem;color:#697993;line-height:1.5;margin:1rem 0 0}
.section-services-working{background:#f5f7fe}
.feature-quote{background:#fff;border:1px solid #e1e7f3;border-radius:20px;padding:2.5rem;box-shadow:0 12px 35px #1e3c6b0a}
.feature-quote h3{font-size:clamp(1.5rem,2.3vw,2rem);letter-spacing:-.03em;line-height:1.2;margin:1rem 0}
.feature-quote p{color:#536179;line-height:1.8}
.section-values{background:#fff}
.section-values .section-lede{max-width:830px;margin:1rem 0;color:#334661;font-size:1.1rem}
.section-values .section-lede.subdued{font-size:1rem;color:#69768b}
.section-values h2{max-width:730px}
.section-partner-principles{background:#f7f9ff}
.section-partner-list{background:#fff}
.partner-card{background:#fff;min-height:210px}
.partner-card p{line-height:1.75}
.contact-main{min-width:0}
.section-contact-guidance{background:#f6f9ff}
.guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.guidance-card{border:1px solid #e0e8f5;border-radius:19px;background:#fff;padding:2.2rem}
.guidance-card h2{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.3;margin:.75rem 0}
.guidance-card p{color:#526078;line-height:1.76}

@media(max-width:1180px){.site-logo,.custom-logo{width:310px}.site-header-inner{gap:1rem}.site-nav-list{gap:1rem}.header-cta{padding:.7rem .85rem}}
@media(max-width:1020px){.header-cta{display:none}.site-logo,.custom-logo{width:300px}.site-header-inner{min-height:92px}.site-nav-list{gap:1rem}.service-detail{grid-template-columns:44px minmax(0,1.2fr) minmax(230px,.9fr);gap:1.4rem}}
@media(max-width:800px){
 .site-header-inner{min-height:84px}
 .site-logo,.custom-logo{width:290px}
 .hero-visual{inset:0}
 .hero--animated .hero-visual,.hero--animated .hero-glow,.hero--animated .hero-sheen{animation:none;will-change:auto;transform:none}
 .hero-sheen{display:none}
 .hero-content{padding-top:95px;padding-bottom:100px}
 .section-challenges,.section-steps{padding:70px 0}
 .challenge-grid,.step-grid,.value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .step-card:not(:last-child):after{display:none}
 .intro-grid{grid-template-columns:1fr;gap:1.2rem}
 .service-detail{grid-template-columns:1fr;gap:1.1rem;padding:58px 0}
 .service-detail-aside{width:100%}
 .guidance-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
 .site-header-inner{min-height:78px}
 .site-logo,.custom-logo{width:min(248px,64vw)}
 .hero h1{font-size:clamp(2.6rem,11vw,3.55rem)}
 .hero-content{padding-top:74px;padding-bottom:93px}
 .hero-lede{font-size:1.02rem}
 .hero-proof{margin-top:2.4rem}
 .challenge-grid,.step-grid,.value-grid{grid-template-columns:1fr}
 .challenge-card,.step-card,.value-card,.guidance-card{padding:1.5rem}
 .service-detail{padding:48px 0}
 .service-detail-aside{padding:1.5rem}
 .section-intro{padding:58px 0}
 .vermont-section{min-height:430px;padding:70px 0}
}
@media(prefers-reduced-motion:reduce){
 .hero--animated .hero-visual,.hero--animated .hero-glow,.hero--animated .hero-sheen{animation:none!important;transform:none!important;will-change:auto}
}

/* Preserve old service #anchors without letting the hidden span consume a CSS grid cell. */
.service-detail{position:relative}
.legacy-anchor{position:absolute;top:0;left:0;inline-size:1px;block-size:1px;overflow:hidden;pointer-events:none}
.services-jump-wrap{padding:24px 0 0}
.services-jump-nav{display:flex;align-items:center;gap:.8rem 1rem;flex-wrap:wrap;padding:1.05rem 1.3rem;background:#eff4fe;border:1px solid #dbe4f6;border-radius:14px}
.services-jump-nav strong{color:#3d5173;font-size:.92rem}
.services-jump-nav a{color:#265cb1;text-decoration:none;font-weight:660;font-size:.93rem}
.services-jump-nav a:hover,.services-jump-nav a:focus-visible{text-decoration:underline}


/* v0.2.2 — ambient fiber hero. CSS-only composited overlays, no additional HTTP requests. */
.hero { isolation:isolate; }
.hero-visual,.hero-glow,.hero-sheen,.hero-particles { pointer-events:none; }
.hero-particles { position:absolute;inset:-5%;z-index:0;opacity:.3;will-change:auto; }
.hero-particles--far {
 background-image:
   radial-gradient(circle 2px at 59% 20%,rgba(142,213,255,.85) 52%,transparent 90%),
   radial-gradient(circle 1.5px at 70% 40%,rgba(155,201,255,.85) 50%,transparent 90%),
   radial-gradient(circle 2.5px at 77% 19%,rgba(151,142,255,.9) 47%,transparent 90%),
   radial-gradient(circle 2px at 85% 55%,rgba(163,235,255,.92) 50%,transparent 90%),
   radial-gradient(circle 2px at 52% 68%,rgba(120,209,255,.75) 50%,transparent 90%),
   radial-gradient(circle 1.5px at 88% 13%,rgba(91,189,255,.88) 50%,transparent 90%),
   radial-gradient(circle 2px at 62% 83%,rgba(159,121,255,.7) 50%,transparent 90%),
   radial-gradient(circle 1.5px at 95% 75%,rgba(107,205,255,.7) 50%,transparent 90%);
 filter:drop-shadow(0 0 6px rgba(92,175,255,.5));
}
.hero-particles--near {
 background-image:
   radial-gradient(circle 4px at 66% 32%,rgba(110,203,255,.84) 42%,transparent 76%),
   radial-gradient(circle 3px at 77% 67%,rgba(134,174,255,.8) 44%,transparent 83%),
   radial-gradient(circle 5px at 91% 38%,rgba(144,215,255,.68) 34%,transparent 77%),
   radial-gradient(circle 3px at 59% 77%,rgba(153,119,255,.62) 40%,transparent 83%),
   radial-gradient(circle 2.7px at 83% 17%,rgba(86,200,255,.88) 46%,transparent 82%),
   radial-gradient(circle 4px at 97% 60%,rgba(120,230,255,.65) 44%,transparent 82%);
 filter:drop-shadow(0 0 8px rgba(78,159,255,.58));
}
.hero--animated .hero-particles--far {animation:tsd-particle-float-far 35s ease-in-out infinite alternate;will-change:transform,opacity}
.hero--animated .hero-particles--near {animation:tsd-particle-float-near 23s ease-in-out infinite alternate;will-change:transform,opacity}
.hero--animated.hero--motion-subtle .hero-particles--far {opacity:.15;animation-duration:48s}
.hero--animated.hero--motion-subtle .hero-particles--near {opacity:.16;animation-duration:38s}
.hero--animated.hero--motion-subtle .hero-glow {opacity:.25;animation-duration:27s}
.hero--animated.hero--motion-subtle .hero-sheen {opacity:.13;animation-duration:34s}
.hero--animated.hero--motion-subtle .hero-visual {animation-duration:42s}
@keyframes tsd-particle-float-far {0%{transform:translate3d(-1.7%,1%,0);opacity:.18}100%{transform:translate3d(1%,-2.2%,0);opacity:.46}}
@keyframes tsd-particle-float-near {0%{transform:translate3d(1.6%,-1.4%,0);opacity:.2}100%{transform:translate3d(-1.5%,1.4%,0);opacity:.52}}
/* Motion is entirely off when the class is absent (including overlays and the source image). */
.hero:not(.hero--animated) .hero-visual,.hero:not(.hero--animated) .hero-glow,.hero:not(.hero--animated) .hero-sheen,
.hero:not(.hero--animated) .hero-particles { animation:none;transform:none;will-change:auto; }

/* Rhythm adjustments based on the full-length 1920px screenshots: no structural layout changes. */
@media(min-width:801px){
 .hero-content {padding-top:99px;padding-bottom:102px}
 .hero-proof {margin-top:2.65rem}
 .section {padding-top:78px;padding-bottom:78px}
 .section-heading {margin-bottom:1.8rem}
 .section-approach .approach-grid{gap:clamp(2rem,4.2vw,5rem)}
 .section-steps .step-card {padding:1.75rem}
 .cta-panel {padding:2.35rem 2.6rem}
 .site-footer {padding-top:59px}
 .footer-bottom {margin-top:52px}
}
.service-card,.challenge-card,.step-card,.value-card,.partner-card,.cta-panel {transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
@media(hover:hover) and (pointer:fine){
 .service-card:hover,.challenge-card:hover,.partner-card:hover {border-color:#b8c9f4;box-shadow:0 16px 42px #142a5912;transform:translateY(-2px)}
}
/* On smaller devices the hero photo and light stay still unless the owner explicitly enables subtle mobile motion. */
@media(max-width:800px){
 .hero .hero-particles {inset:0;opacity:.12;animation:none;will-change:auto;transform:none}
 .hero .hero-visual,.hero .hero-glow,.hero .hero-sheen {will-change:auto}
 .hero--animated:not(.hero--mobile-motion) .hero-particles {animation:none}
 .hero--animated.hero--mobile-motion .hero-glow {animation:tsd-glow-drift 31s ease-in-out infinite alternate}
 .hero--animated.hero--mobile-motion .hero-particles--far {animation:tsd-particle-float-far 55s ease-in-out infinite alternate;will-change:transform,opacity}
 .hero--animated.hero--mobile-motion .hero-particles--near {animation:tsd-particle-float-near 43s ease-in-out infinite alternate;will-change:transform,opacity}
 .hero--animated.hero--mobile-motion .hero-visual {animation:none;transform:none;will-change:auto}
 .hero--animated.hero--mobile-motion .hero-sheen {animation:none;display:none}
 .hero-content {padding-top:82px;padding-bottom:90px}
 .section {padding-top:60px;padding-bottom:60px}
 .section-heading {margin-bottom:1.55rem}
 .section-steps .step-grid {margin-top:1.6rem}
}
@media(max-width:560px){
 .hero-content {padding-top:72px;padding-bottom:82px}
 .hero-proof {margin-top:2rem}
 .section {padding-top:50px;padding-bottom:50px}
 .section-heading {margin-bottom:1.35rem}
 .step-grid,.challenge-grid,.value-grid {margin-top:1.55rem}
 .cta-panel {padding:1.65rem}
 .site-footer {padding-top:50px}
 .footer-bottom {margin-top:38px}
}
/* The OS accessibility preference always wins, including when mobile motion is enabled. */
@media(prefers-reduced-motion:reduce){
 .hero .hero-visual,.hero .hero-glow,.hero .hero-sheen,.hero .hero-particles {animation:none!important;transform:none!important;will-change:auto!important}
 .service-card,.challenge-card,.step-card,.value-card,.partner-card,.cta-panel {transition:none!important}
}

/* Fine-grained opacity profiles: preserve a genuinely subtle setting at every frame. */
.hero--animated.hero--motion-subtle .hero-particles--far {animation-name:tsd-particle-float-far-subtle}
.hero--animated.hero--motion-subtle .hero-particles--near {animation-name:tsd-particle-float-near-subtle}
.hero--animated.hero--motion-subtle .hero-glow {animation-name:tsd-glow-drift-subtle}
@keyframes tsd-particle-float-far-subtle {0%{transform:translate3d(-.9%,.6%,0);opacity:.08}100%{transform:translate3d(.7%,-1%,0);opacity:.18}}
@keyframes tsd-particle-float-near-subtle {0%{transform:translate3d(.8%,-.7%,0);opacity:.09}100%{transform:translate3d(-.8%,.9%,0);opacity:.19}}
@keyframes tsd-glow-drift-subtle {0%{transform:translate3d(-1%,0,0);opacity:.16}100%{transform:translate3d(1.2%,1%,0);opacity:.28}}
@media(max-width:800px){
 .hero--animated.hero--mobile-motion .hero-particles--far {animation-name:tsd-particle-float-far-mobile}
 .hero--animated.hero--mobile-motion .hero-particles--near {animation-name:tsd-particle-float-near-mobile}
 .hero--animated.hero--mobile-motion .hero-glow {animation-name:tsd-glow-drift-mobile}
}
@keyframes tsd-particle-float-far-mobile {0%{transform:translate3d(-.5%,0,0);opacity:.09}100%{transform:translate3d(.4%,-.7%,0);opacity:.18}}
@keyframes tsd-particle-float-near-mobile {0%{transform:translate3d(.6%,0,0);opacity:.07}100%{transform:translate3d(-.5%,.7%,0);opacity:.16}}
@keyframes tsd-glow-drift-mobile {0%{transform:translate3d(-.5%,0,0);opacity:.13}100%{transform:translate3d(.6%,.3%,0);opacity:.22}}


/* v0.2.4 — photo-registered fiber pulses.
 * SVG now lives INSIDE the hero image layer, so its cover crop, right-center
 * alignment, and slow drift are identical to the photo at every viewport.
 * A source-photo luma-alpha mask restricts the light to photographed fiber
 * strands; no floating lines can be drawn in unlit parts of the background.
 */
.hero-visual{overflow:hidden}
.hero-lightstreams{
 position:absolute;inset:0;width:100%;height:100%;pointer-events:none;
 opacity:0;overflow:hidden;
 -webkit-mask-image:url('assets/images/fiber-light-mask.png');
 mask-image:url('assets/images/fiber-light-mask.png');
 -webkit-mask-size:cover;mask-size:cover;
 -webkit-mask-position:right center;mask-position:right center;
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
.hero-stream{
 fill:none;vector-effect:non-scaling-stroke;
 stroke:rgba(162,232,255,.98);stroke-width:4px;stroke-linecap:round;
 stroke-dasharray:5 95;stroke-dashoffset:100;
 filter:drop-shadow(0 0 4px rgba(109,215,255,.9)) drop-shadow(0 0 10px rgba(62,143,255,.7));
}
.hero-stream--two{stroke:rgba(155,217,255,.96);stroke-width:3.2px;stroke-dasharray:4.5 95.5}
.hero-stream--three{stroke:rgba(130,218,255,.95);stroke-width:4.7px;stroke-dasharray:5.5 94.5}
.hero-stream--four{stroke:rgba(151,222,255,.95);stroke-width:4.2px;stroke-dasharray:5 95}
.hero--animated .hero-lightstreams{opacity:.90}
.hero--animated .hero-stream--one{animation:tsd-signal-pulse 9.8s linear infinite}
.hero--animated .hero-stream--two{animation:tsd-signal-pulse 12s linear infinite;animation-delay:-4s}
.hero--animated .hero-stream--three{animation:tsd-signal-pulse 11.4s linear infinite;animation-delay:-8s}
.hero--animated .hero-stream--four{animation:tsd-signal-pulse 13.3s linear infinite;animation-delay:-3.5s}
@keyframes tsd-signal-pulse{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.hero--animated.hero--motion-subtle .hero-lightstreams{opacity:.48}
.hero--animated.hero--motion-subtle .hero-stream--one{animation-duration:17s}
.hero--animated.hero--motion-subtle .hero-stream--two{animation-duration:20s}
.hero--animated.hero--motion-subtle .hero-stream--three{animation-duration:19s}
.hero--animated.hero--motion-subtle .hero-stream--four{animation-duration:22s}
/* Mobile remains static by default, with slower and weaker owner opt-in. */
@media(max-width:800px){
 .hero-lightstreams{display:none}
 .hero--animated.hero--mobile-motion .hero-lightstreams{display:block;opacity:.28}
 .hero--animated.hero--mobile-motion .hero-stream--one{animation-duration:22s}
 .hero--animated.hero--mobile-motion .hero-stream--two{animation-duration:27s}
 .hero--animated.hero--mobile-motion .hero-stream--three{display:none}
 .hero--animated.hero--mobile-motion .hero-stream--four{display:none}
}
@media(prefers-reduced-motion:reduce){
 .hero-lightstreams{display:none!important;opacity:0!important}
 .hero-stream{animation:none!important}
}

/* v0.3.0: dedicated service details and consent-first analytics preferences. */
.tsd-service-breadcrumbs{font-size:.86rem;color:#91b5f7;margin:0 0 22px}
.tsd-service-breadcrumbs a{color:inherit;text-underline-offset:3px}
.tsd-service-breadcrumbs span[aria-hidden]{padding:0 9px;color:#bb92ff}
.tsd-service-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;color:#bdcfe8;font-weight:600;font-size:.92rem}
.tsd-detail-body{max-width:840px}.tsd-detail-body h2{font-size:clamp(1.6rem,3vw,2.25rem);margin:1.7em 0 .7em}.tsd-detail-body p{line-height:1.85}
.tsd-detail-aside{background:#f5f8ff;padding:28px;border:1px solid #dbe6f5;border-radius:20px;align-self:start}
.tsd-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.75fr);gap:clamp(28px,4vw,70px);align-items:start}
.tsd-related-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}
.tsd-related-services a{display:block;padding:24px;border:1px solid #d8e3f5;border-radius:14px;background:#fff;font-weight:700;text-decoration:none;color:#154b95}
.tsd-related-services a:hover,.tsd-related-services a:focus-visible{border-color:#677ce9;box-shadow:0 10px 35px #172e591c}
.tsd-consent-banner[hidden]{display:none!important}
.tsd-consent-banner{position:fixed;z-index:99999;bottom:18px;left:50%;transform:translateX(-50%);width:min(94vw,900px);background:#081831;color:#fff;border:1px solid #6875a2;border-radius:16px;box-shadow:0 20px 60px #030c20a6;display:flex;gap:18px;align-items:center;justify-content:space-between;padding:18px 22px}
.tsd-consent-banner strong{font-size:1rem}.tsd-consent-banner p{margin:6px 0 0;font-size:.88rem;max-width:650px;line-height:1.55;color:#e4edff}.tsd-consent-banner a{color:#bfcaff;text-underline-offset:3px}
.tsd-consent-actions{display:flex;flex-shrink:0;gap:9px}.tsd-consent-actions button{border-radius:9px;border:1px solid #acbce0;padding:10px 13px;color:#fff;background:transparent;font:inherit;font-weight:700;cursor:pointer}.tsd-consent-actions button[data-tsd-consent=granted]{background:linear-gradient(120deg,#8731cc,#336edb);border-color:transparent}
.tsd-consent-actions button:focus-visible,.tsd-analytics-preferences:focus-visible{outline:3px solid #69b3ff;outline-offset:3px}
.tsd-analytics-preferences{color:#cddcff;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media(max-width:800px){.tsd-detail-grid{grid-template-columns:1fr}.tsd-related-services{grid-template-columns:1fr}.tsd-consent-banner{flex-direction:column;align-items:stretch;bottom:8px}.tsd-consent-actions{justify-content:flex-end}}
