/* Old Grove Tech Co. — minimalist heritage service design, version 2 */
:root{
  color-scheme: light;
  --pine:#193c37;
  --pine-deep:#102e2b;
  --pine-muted:#386358;
  --ink:#233732;
  --body:#42544e;
  --muted:#596e65;
  --ivory:#fbfaf6;
  --paper:#f5f4ee;
  --cream:#eeece3;
  --rule:#d8ded6;
  --rust:#a95838;
  --gold:#c4a66e;
  --white:#fff;
  --serif: Georgia, 'Iowan Old Style', 'Baskerville', 'Palatino Linotype', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --content:76rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:7rem}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 1.125rem/1.7 var(--sans);-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-wrap:break-word}
[hidden]{display:none!important}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.19em}
h1,h2,h3,p{margin:0}
h1,h2,h3{line-height:1.15;text-wrap:balance}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.036em}
h1 em,h2 em{color:var(--rust);font-weight:400}
h3{font-family:var(--serif);font-weight:500;letter-spacing:-.015em}
p{text-wrap:pretty}
:focus-visible{outline:.2rem solid var(--rust);outline-offset:.22rem}
.skip-link{position:fixed;z-index:100;top:-8rem;left:1rem;padding:.9rem 1.25rem;background:white;color:var(--pine);border:.15rem solid var(--pine)}
.skip-link:focus{top:1rem}
.container{width:min(calc(100% - 3rem),var(--content));margin-inline:auto}
.section{padding-block:clamp(4.5rem,8vw,8rem);scroll-margin-top:5rem}
.eyebrow{display:flex;align-items:center;gap:.6rem;color:var(--pine-muted);font-size:.875rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;line-height:1.5}
.eyebrow-dot{width:.45rem;height:.45rem;background:var(--rust);border-radius:50%;flex:none}
h1{font-size:clamp(3.2rem,5.7vw,5.75rem);line-height:1.06}
h2{font-size:clamp(2.55rem,4.45vw,4.65rem)}
h3{font-size:clamp(1.5rem,2vw,1.9rem)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.25rem;min-height:3.6rem;padding:.8rem 1.45rem;border-radius:.3rem;border:1px solid transparent;text-decoration:none;font-size:1.05rem;font-weight:700;line-height:1.35;transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease}
.button-primary{background:var(--pine);color:white}
.button-primary:hover{background:#2b554b;transform:translateY(-2px);box-shadow:0 .55rem 1.25rem rgba(16,46,43,.13)}
.quiet-link{display:inline-flex;align-items:center;gap:.65rem;min-height:3.6rem;font-size:1.05rem;font-weight:700;color:var(--pine)}
.quiet-link:hover,.nav a:not(.nav-contact):hover,.footer a:hover{color:var(--rust)}
.preview-note{background:#ffead0;color:#563918;padding:.65rem 1rem;text-align:center;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;font-size:1rem;line-height:1.5}
.preview-note strong{font-weight:800}
.header{z-index:30;position:sticky;top:0;border-bottom:1px solid rgba(25,60,55,.13);background:rgba(251,250,246,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.header-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:5.6rem}
.brand{display:inline-flex;align-items:center;gap:.85rem;text-decoration:none;min-width:0}
.brand img{width:3.15rem;height:3.15rem;flex:none}
.brand-wordmark{display:flex;flex-direction:column;color:var(--pine);line-height:1.05;white-space:nowrap}
.brand-wordmark strong{font:700 1.4rem/1.12 var(--serif);letter-spacing:.012em}
.brand-wordmark small{font-size:.82rem;font-weight:800;letter-spacing:.18em;margin-top:.17rem}
.nav{display:flex;align-items:center;gap:clamp(.9rem,2.1vw,2.25rem)}
.nav a{text-decoration:none;font-size:1rem;font-weight:650;min-height:3.2rem;display:inline-flex;align-items:center;justify-content:center;gap:.8rem;transition:color .2s ease}
.nav .nav-contact{color:white;background:var(--pine);padding:.7rem 1.2rem;border-radius:.3rem}
.nav .nav-contact:hover{background:var(--pine-muted)}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.82fr);gap:clamp(2rem,6vw,7rem);align-items:center;padding-block:clamp(4rem,7.3vw,7.6rem) clamp(4rem,7.3vw,7.6rem)}
.hero-copy{max-width:40rem}
.hero h1{margin-top:1.4rem}
.hero-lede{font-size:clamp(1.2rem,1.6vw,1.45rem);line-height:1.65;max-width:36rem;color:var(--body);margin-top:1.75rem}
.hero-note{margin-top:1.15rem;font-size:1.05rem;color:var(--muted)}
.hero-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.65rem;margin-top:2.35rem}
.hero-aside{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:34rem;max-width:33rem;width:100%;margin-inline:auto;padding:clamp(2rem,4vw,3rem);text-align:center;background:var(--pine);color:#f4efe4;overflow:hidden;border-radius:.3rem;isolation:isolate}
.hero-aside::before{content:"";position:absolute;inset:1rem;border:1px solid rgba(223,204,162,.4);pointer-events:none}
.hero-aside::after{content:"";position:absolute;z-index:-1;width:32rem;height:32rem;bottom:-18rem;right:-12rem;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 4rem rgba(255,255,255,.025),0 0 0 8rem rgba(255,255,255,.025);pointer-events:none}
.heritage-icon{width:9rem;height:9rem;display:grid;place-items:center;overflow:hidden}
.heritage-icon img{width:100%;height:100%;filter:saturate(.75);transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.hero-aside:hover .heritage-icon img{transform:scale(1.045) rotate(-1deg)}
.aside-overline{font-size:.83rem;letter-spacing:.14em;font-weight:700;color:#e7d1a6;margin-top:1.35rem}
.aside-quote{max-width:20rem;margin-top:.9rem;font:400 clamp(2.05rem,2.8vw,2.65rem)/1.25 var(--serif);letter-spacing:-.025em;text-wrap:balance}
.aside-foot{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.65rem;margin-top:2.25rem;font-size:.78rem;line-height:1.45;font-weight:700;letter-spacing:.045em;color:#dfd6bd}
.aside-foot span:nth-child(2){color:var(--gold)}
.service-promise{display:flex;justify-content:space-between;gap:1rem 2.2rem;flex-wrap:wrap;padding-block:1.35rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--pine-muted);font-weight:650;font-size:1rem}
.services-section{background:#fff}
.section-intro{max-width:49rem;margin-bottom:2.8rem}
.section-intro h2{margin-top:.8rem}
.section-intro>p:last-child{margin-top:1.25rem;max-width:40rem;color:var(--body);font-size:1.2rem}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule)}
.service-item{padding:2.3rem 1.6rem 2.5rem 0;border-bottom:1px solid var(--rule);min-width:0}
.service-item:nth-child(3n+2),.service-item:nth-child(3n){padding-left:1.5rem}
.service-index{display:block;margin-bottom:2rem;color:var(--rust);font:700 .92rem/1.3 var(--sans);letter-spacing:.1em}
.service-item h3{margin-bottom:.9rem;color:var(--pine)}
.service-item p{font-size:1.05rem;line-height:1.75;color:var(--body)}
.section-bottom-note{margin-top:2rem;color:var(--muted);font-size:1rem}
.values-section{background:var(--paper)}
.values-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(2.8rem,8vw,9rem)}
.values-layout h2{margin-top:1rem}
.section-description{margin-top:1.25rem;max-width:29rem;color:var(--body);font-size:1.18rem}
.values-list{border-top:1px solid #cdd5cd}
.value-item{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:1.15rem;padding-block:2rem;border-bottom:1px solid #cdd5cd}
.value-item>span{color:var(--rust);font-size:.9rem;font-weight:800}
.value-item h3{font-size:1.65rem;margin-bottom:.5rem}
.value-item p{font-size:1.05rem;color:var(--body)}
.about-section{background:#fff}
.about-layout{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.2fr);gap:clamp(3rem,10vw,10rem);align-items:center}
.about-mark{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;min-height:24rem;padding:3rem;background:var(--paper);border:1px solid var(--rule)}
.about-mark::after{content:"";position:absolute;inset:1rem;border:1px solid #ded7c5;pointer-events:none}
.about-mark img{width:clamp(7rem,14vw,10rem);height:auto}
.about-mark span{font-size:.88rem;color:var(--pine-muted);font-weight:700;letter-spacing:.1em;text-align:center}
.about-copy h2{margin-top:1rem}
.about-copy p:not(.eyebrow){margin-top:1.15rem;color:var(--body);font-size:1.1rem;max-width:42rem}
.about-copy .about-lede{font-family:var(--serif);font-size:clamp(1.4rem,2vw,1.8rem)!important;color:var(--pine)!important;line-height:1.5}
.about-signature{font-family:var(--serif);font-style:italic;color:var(--rust);font-size:1.25rem;margin-top:1.8rem}
.pricing-section{background:var(--cream)}
.pricing-head{display:grid;grid-template-columns:1fr minmax(0,.8fr);gap:2rem 5rem;align-items:end;margin-bottom:2.8rem}
.pricing-head h2{margin-top:.9rem}
.pricing-head>p{font-size:1.15rem;color:var(--body)}
.price-list{border-top:1px solid #c7d1c8}
.price-row{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-block:2.15rem;border-bottom:1px solid #c7d1c8}
.price-row h3{margin-bottom:.35rem;font-size:1.8rem}
.price-row p{color:var(--body);max-width:33rem}
.price-amount{display:flex;flex-direction:column;align-items:flex-end;flex:none;text-align:right}
.price-draft{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.price-amount strong{color:var(--pine);font:500 clamp(2.5rem,4vw,3.5rem)/1.16 var(--serif);white-space:nowrap}
.price-amount .currency{font-size:.65em;vertical-align:top}
.price-amount small{font:500 1.05rem/1.2 var(--sans);color:var(--body)}
.pricing-disclaimer{margin-top:1.4rem;font-size:1rem;color:var(--muted)}
.faq-section{background:#fff}
.faq-layout{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,9vw,9rem)}
.faq-layout h2{margin-top:1rem}
.faq-list{border-top:1px solid var(--rule)}
.faq-list details{border-bottom:1px solid var(--rule)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0;min-height:4rem;font-size:1.15rem;font-weight:700;line-height:1.45;cursor:pointer;color:var(--pine)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{flex:none;display:grid;place-items:center;font:400 1.8rem/1 var(--sans);width:2.3rem;height:2.3rem;color:var(--rust);transition:transform .2s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{padding:0 3rem 1.7rem 0;max-width:39rem;color:var(--body)}
.contact-section{padding-block:clamp(4rem,7vw,7rem);background:var(--pine);color:#f7f2e9}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem);align-items:start}
.eyebrow-light{color:#e0cca3}
.contact-layout h2{margin-top:1rem;color:#fff}
.contact-layout h2 em{color:#dbbd8d}
.contact-layout>div>p:not(.eyebrow){color:#d9e5dc;margin-top:1.3rem;max-width:35rem;font-size:1.2rem}
.contact-panel{border-top:1px solid rgba(255,255,255,.3);padding-top:1.35rem}
.contact-label{font-size:.86rem;font-weight:700;letter-spacing:.1em;color:#e0cca3}
.contact-placeholder{font:400 clamp(1.7rem,3vw,2.2rem)/1.35 var(--serif);margin:1rem 0 0;color:white}
.contact-email,.contact-phone{display:block;width:fit-content;max-width:100%;margin-top:1rem;font:400 clamp(1.45rem,2.5vw,2.25rem)/1.5 var(--serif);overflow-wrap:anywhere;color:#fff;text-decoration-thickness:.06em}
.contact-location{font-size:1.05rem;margin-top:1.65rem;color:#d9e5dc}
.security-note{font-size:.92rem!important;color:#d5ddda!important;line-height:1.6;margin-top:1.3rem!important}
.footer{background:var(--pine-deep);color:#e4e9df;padding:2.2rem 0}
.footer-inner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:2rem 3rem;align-items:start}
.footer-brand{font-family:var(--serif);font-size:1.3rem;font-weight:700;text-decoration:none}
.footer-brand span{font:700 .85rem var(--sans);letter-spacing:.13em}
.footer-links{display:flex;gap:.65rem 1.4rem;flex-wrap:wrap}
.footer-links a{font-size:.98rem;text-decoration:none}
.footer-inner p{font-size:.92rem;color:#bccfc7;line-height:1.7}
html.motion-ready [data-reveal]{opacity:0;transform:translateY(.65rem);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.72,.28,1)}
html.motion-ready [data-reveal].is-visible{opacity:1;transform:none}
@media (max-width:67rem){
 .nav{gap:.8rem}.nav a{font-size:.94rem}
 .hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr);gap:2rem}
 .hero-aside{min-height:30rem}
 .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-item:nth-child(n){padding-left:0;padding-right:1.8rem}
 .service-item:nth-child(2n){padding-left:1.5rem;padding-right:0}
}
@media (max-width:56rem){
 html{scroll-padding-top:5.5rem}
 .header-inner{min-height:5rem}
 .menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;background:transparent;color:var(--pine);border:1px solid var(--rule);border-radius:.3rem;min-height:3.2rem;min-width:5.3rem;padding:.65rem .9rem;font-size:1rem;font-weight:750}
 .menu-lines{display:flex;flex-direction:column;gap:.3rem}
 .menu-lines i{display:block;width:1.2rem;height:2px;background:currentColor;transition:transform .2s}
 .menu-toggle[aria-expanded="true"] .menu-lines i:first-child{transform:translateY(.23rem) rotate(45deg)}
 .menu-toggle[aria-expanded="true"] .menu-lines i:last-child{transform:translateY(-.23rem) rotate(-45deg)}
 .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--ivory);padding:1rem max(1.5rem,calc((100vw - var(--content))/2));gap:0;border-bottom:1px solid var(--rule);box-shadow:0 1rem 2rem rgba(0,0,0,.09)}
 .nav.is-open{display:flex}
 .nav a{justify-content:flex-start;font-size:1.15rem;font-weight:700;padding:.65rem .4rem;min-height:3.2rem}
 .nav .nav-contact{justify-content:center;margin-top:.55rem}
 .hero{grid-template-columns:1fr;gap:3rem;padding-block:4rem}
 .hero-copy{max-width:44rem}
 .hero-aside{max-width:none;min-height:22rem}
 .hero-aside::after{width:30rem;height:30rem}
 .values-layout,.about-layout,.pricing-head,.faq-layout,.contact-layout{grid-template-columns:1fr;gap:2.2rem}
 .about-layout{gap:2.8rem}
 .about-mark{min-height:16rem;max-width:25rem}
 .footer-inner{grid-template-columns:1fr 1fr}
 .footer-inner p{grid-column:1/-1}
}
@media (max-width:38rem){
 .container{width:calc(100% - 2.25rem)}
 .section{padding-block:4rem}
 .brand img{width:2.55rem;height:2.55rem}
 .brand-wordmark strong{font-size:1.18rem}
 .brand-wordmark small{font-size:.72rem}
 .hero{padding-block:3rem}
 h1{font-size:clamp(2.75rem,11vw,4rem)}
 h2{font-size:clamp(2.3rem,9.5vw,3.35rem)}
 .hero-lede{font-size:1.2rem}
 .hero-aside{min-height:22rem;padding:2.3rem 1.5rem}
 .service-promise{display:grid;grid-template-columns:1fr;gap:.5rem}
 .service-promise span::before{content:"✓";margin-right:.7rem;color:var(--rust)}
 .services-grid{grid-template-columns:1fr}
 .service-item:nth-child(n){padding:1.8rem 0}
 .service-index{margin-bottom:.85rem}
 .value-item{gap:.5rem;grid-template-columns:2.5rem minmax(0,1fr)}
 .price-row{align-items:flex-start;flex-direction:column;gap:.9rem}
 .price-amount{align-items:flex-start;text-align:left}
 .about-mark{max-width:none}
 .footer-inner{grid-template-columns:1fr}
 .footer-inner p{grid-column:auto}
 .preview-note{font-size:.95rem}
}
@media (max-width:23rem){
 .container{width:calc(100% - 1.5rem)}
 .brand{gap:.4rem}
 .brand-wordmark strong{font-size:1.05rem}
 .brand-wordmark small{font-size:.65rem}
 .menu-toggle{min-width:3rem;padding:.6rem}
 .hero h1{font-size:2.55rem}
 .hero-buttons{align-items:stretch;flex-direction:column}
 .button,.quiet-link{width:100%}
 .hero-aside{padding:2.5rem 1.1rem}
 .aside-foot{gap:.3rem}
}
@media (hover:none){.button:hover{transform:none;box-shadow:none}.hero-aside:hover .heritage-icon img{transform:none}}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 html{scroll-behavior:auto}
 html.motion-ready [data-reveal]{opacity:1;transform:none}
}


/* Simple supporting pages and robust text-enlargement handling */
.policy-page{max-width:52rem;padding-block:clamp(3rem,8vw,6rem)}
.policy-page h1{margin-top:1rem}
.policy-lede{color:var(--pine);font:400 clamp(1.3rem,2.2vw,1.6rem)/1.55 var(--serif);margin-top:1.5rem}
.policy-page section{margin-top:2.3rem;padding-top:1.7rem;border-top:1px solid var(--rule)}
.policy-page section h2{font-size:clamp(1.65rem,3vw,2.2rem);margin-bottom:.8rem}
.policy-page section p{color:var(--body)}
.policy-draft{padding:1.25rem;background:#ffead0;color:#563918;margin-top:2rem}
.policy-page>.quiet-link{margin-top:2.5rem}
.not-found{min-height:100svh;padding-block:3rem;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:1.4rem}
.not-found>img{width:5.5rem}
.not-found>h1{max-width:38rem}
.not-found>p:not(.eyebrow){color:var(--body);font-size:1.2rem;max-width:38rem}
@media(max-width:29rem){
 .header-inner{flex-wrap:wrap;gap:.45rem}
 .brand img{display:none}
 .brand-wordmark strong{font-size:1.1rem}
 .brand-wordmark small{font-size:.74rem}
 .nav{top:100%}
 .header .button{min-height:3rem}
}
@media(max-width:22rem){
 .header-inner{align-content:center}
 .menu-toggle{margin-left:auto}
 .hero-aside::before{inset:.65rem}
 .aside-foot{flex-direction:column}
 .aside-foot span:nth-child(2){display:none}
}

/* Small-print policy: important information remains legible at default text size. */
.eyebrow,.aside-overline,.aside-foot,.service-index,.about-mark span,.price-draft,.contact-label,.footer-links a,.footer-inner p,.security-note{font-size:1rem}
.brand-wordmark small,.footer-brand span{font-size:.95rem}
@media(max-width:38rem){.brand-wordmark small{font-size:.82rem}}
@media(max-width:23rem){.brand-wordmark small{font-size:.8rem}}

/* A JavaScript error should never make mobile navigation disappear. */
@media(max-width:56rem){
 html:not(.js) .header-inner{flex-wrap:wrap}
 html:not(.js) .menu-toggle{display:none}
 html:not(.js) .nav{display:flex;position:static;box-shadow:none;border:0;flex-direction:row;flex-wrap:wrap;flex-basis:100%;padding:0 0 1rem;gap:.25rem 1rem}
 html:not(.js) .nav a{font-size:1rem;min-height:2.8rem}
}
