@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--green:#0d3b2e;--cream:#f5f1e8;--white:#fffdf8;--gold:#c8a45d;--ink:#18201d;--muted:#6e766f;--line:rgba(13,59,46,.16);--shadow:0 18px 55px rgba(0,0,0,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-family:'DM Sans',Arial,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,248,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-wrap{max-width:1200px;margin:auto;display:flex;align-items:center;gap:28px;padding:12px 24px}.brand img{width:112px;height:auto}.nav{display:flex;gap:25px;margin-left:auto;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600}.nav a{padding:10px 0;border-bottom:2px solid transparent}.nav a:hover{border-color:var(--gold)}.nav-phone{background:var(--green);color:white;padding:12px 17px;font-size:.8rem;font-weight:700;letter-spacing:.04em}
.hero{position:relative;min-height:78vh;display:grid;align-items:end;overflow:hidden;background:#102c23}.hero-bg{position:absolute;inset:0;background-image:url('assets/jr_hero_current.jpg');background-size:cover;background-position:center 45%;filter:saturate(.8)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,27,21,.88),rgba(5,27,21,.42) 55%,rgba(5,27,21,.12)),linear-gradient(0deg,rgba(0,0,0,.55),transparent 55%)}.hero-content{position:relative;z-index:2;color:white;max-width:1200px;width:100%;margin:auto;padding:120px 24px 78px}.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--green);margin:0 0 12px}.eyebrow.light{color:#ead7a6}.hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(4rem,8vw,7.5rem);line-height:.82;margin:0 0 26px;font-weight:600;letter-spacing:-.025em}.hero h1 span{color:#ead7a6}.hero-sub{font-size:1rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600}.hero-sub i{color:var(--gold);font-style:normal;padding:0 10px}.hero-badge{display:inline-block;margin:25px 0 10px;border-top:1px solid rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.5);padding:10px 0;letter-spacing:.16em;font-weight:700;font-size:.8rem}.hero-copy{max-width:560px;margin:0 0 24px;color:#f3f0e9}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:14px 20px;border:0;font:inherit;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;cursor:pointer}.btn.gold{background:var(--gold);color:#17221d}.btn.green{background:var(--green);color:white}.btn:hover{transform:translateY(-1px)}
.section{padding:92px 24px}.section-grid,.about,.reset,.contact,.quote{max-width:1200px;margin:auto}.intro{background:var(--cream)}.section-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2.6rem,4vw,4.2rem);line-height:.98;margin:0 0 20px;font-weight:600}.intro p{max-width:650px;color:#4f5953;font-size:1.05rem}
.dark{background:var(--green);color:white}.section-heading{max-width:1200px;margin:0 auto 38px;text-align:center}.section-heading h2{max-width:700px;margin:0 auto}.cards{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.2)}.service-card{background:var(--green);padding:42px 34px;min-height:280px;border:1px solid rgba(255,255,255,.08)}.icon{width:46px;height:46px;color:var(--gold);margin-bottom:24px}.icon svg{width:100%;height:100%}.service-card h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:2rem;margin:0 0 12px}.service-card p{color:#d9dfda;max-width:320px}.service-card a{display:inline-block;margin-top:18px;color:#e5c981;text-transform:uppercase;font-size:.72rem;font-weight:700;letter-spacing:.1em}
.reset{display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:center}.lead{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.65rem;font-style:italic;color:var(--green)}.small,.muted{color:var(--muted);font-size:.9rem}.reset-panel{min-height:360px;background:linear-gradient(145deg,#183f33,#0b2b22);color:white;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;box-shadow:var(--shadow)}.reset-panel strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:3.4rem;line-height:.85;margin:18px 0}.panel-kicker,.work-tag{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#e0c37c;font-weight:700}.panel-line{width:50px;height:1px;background:var(--gold);margin:15px}
.about{display:grid;grid-template-columns:1.4fr .6fr;gap:2px;background:var(--line);padding:0}.about-card,.about-side{padding:78px 64px;background:var(--cream)}.about-card p{max-width:700px;font-size:1.03rem}.about-side{background:var(--green);color:white;display:flex;flex-direction:column;justify-content:center}.quote-mark{font-family:Georgia,serif;font-size:6rem;color:var(--gold);line-height:.6}.about-side p{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.3rem;line-height:1.05}.about-side span{color:#e0c37c}.values{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.values span{border:1px solid var(--line);padding:8px 13px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.work{background:#f0ece2}.work-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.3fr .85fr .85fr;gap:18px}.work-card{min-height:390px;position:relative;overflow:hidden}.work-placeholder{position:absolute;inset:0;padding:32px;display:flex;flex-direction:column;justify-content:flex-end;color:white}.work-placeholder:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 20%,rgba(5,25,19,.92) 100%)}.building{background:linear-gradient(145deg,#8b7a5b,#35483e)}.clean{background:linear-gradient(145deg,#d6d2c5,#48685b)}.winter{background:linear-gradient(145deg,#aab9c2,#263d37)}.work-card h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.1rem;line-height:1;margin:10px 0}.work-card p{margin:0 0 15px;color:#eef1ec}.work-card a{color:#f0d486;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.work-example{color:#eef1ec;font-size:.78rem;line-height:1.45;max-width:390px}
.quote{background:var(--green);color:white;display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;max-width:none;padding-left:max(24px,calc((100vw - 1152px)/2));padding-right:max(24px,calc((100vw - 1152px)/2))}.quote>div{align-self:center}.quote h2{font-size:4rem}.quote p{color:#d8dfd9}.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#f7f4ec;color:var(--ink);padding:34px}.quote-form label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.quote-form input,.quote-form select,.quote-form textarea{width:100%;margin-top:7px;border:1px solid #d4d2c9;background:white;padding:12px;font:inherit;font-size:.95rem}.quote-form .full{grid-column:1/-1}
.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:center}.contact-details{display:grid;gap:1px;background:var(--line)}.contact-details>*{background:var(--cream);padding:20px 24px}.contact-details span{display:block;font-size:.65rem;letter-spacing:.14em;color:var(--muted);font-weight:700}.contact-details strong{display:block;font-size:1.05rem;margin-top:3px}
.footer{background:#08251e;color:white;padding:55px 24px 25px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}.footer-brand img{width:140px;filter:invert(1);margin-bottom:8px}.footer-brand p{color:#e0c37c;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;margin:0 0 8px}.footer-brand small{font-size:.65rem;letter-spacing:.13em;color:#cfd7d2}.footer-links{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;text-transform:uppercase;font-size:.7rem;letter-spacing:.08em}.footer-note{text-align:right;color:#aebbb4;font-size:.75rem}.temp-note{opacity:.7}
@media(max-width:850px){.nav{display:none}.nav-phone{margin-left:auto}.hero{min-height:82vh}.hero-content{padding:100px 22px 55px}.hero h1{font-size:4.2rem}.section-grid,.reset,.about,.contact,.quote{grid-template-columns:1fr;gap:35px}.cards,.work-grid{grid-template-columns:1fr}.about{padding:0}.about-card,.about-side{padding:55px 28px}.quote{padding:65px 22px}.quote-form{grid-template-columns:1fr}.quote-form .full{grid-column:auto}.footer{grid-template-columns:1fr;text-align:center}.footer-links{justify-content:center}.footer-note{text-align:center}}

.final-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.final-work-grid .work-card img{width:100%;height:240px;object-fit:cover;display:block}
.final-work-grid .work-caption{padding:1.1rem 1.2rem 1.25rem;background:#0d3b2e}
.final-work-grid .work-caption .work-tag{display:block;color:#f0d486;font-size:.68rem;font-weight:700;letter-spacing:.11em;margin-bottom:.55rem}
.final-work-grid .work-caption h3{margin:0 0 .45rem;color:#fff;font-family:Georgia,serif;font-size:1.35rem}
.final-work-grid .work-caption p{margin:0;color:#eef1ec;font-size:.82rem;line-height:1.5}
.camp-feature{display:grid;grid-template-columns:1.1fr .9fr;gap:1.2rem;align-items:stretch;margin-top:1rem}
.camp-photo img{width:100%;height:100%;min-height:250px;object-fit:cover;display:block;border-radius:2px}
.camp-feature a{display:inline-block;margin-top:.85rem;color:#f0d486;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:center}
.about-photo img{width:100%;height:420px;object-fit:cover;display:block}
.quote-media-note{margin:1.2rem 0;padding:1rem 1.2rem;border-left:3px solid #f0d486;background:#f6f2e8}
.quote-media-note h3{margin:0 0 .4rem}
.quote-media-note .small-note{font-size:.78rem;margin-top:.5rem}
@media(max-width:800px){.final-work-grid,.camp-feature,.about-grid{grid-template-columns:1fr}.about-photo img{height:320px}.final-work-grid .work-card img{height:220px}}


/* Small launch additions: camp cleaning + real quote uploads */
.camp-feature{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:0;margin-top:32px;background:rgba(255,253,248,.06);border:1px solid rgba(245,241,232,.14);overflow:hidden}
.camp-photo img{width:100%;height:100%;min-height:260px;object-fit:cover;display:block}
.camp-copy{padding:34px 36px;align-self:center}
.camp-copy h3{font-family:"Cormorant Garamond",serif;font-size:2rem;margin:6px 0 10px}
.camp-copy p{max-width:620px}
.camp-copy a{color:var(--gold);font-weight:600}
.hidden-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.quote-form input[type="file"]{padding:10px 0;border:0;background:transparent;color:var(--white)}
.file-help{display:block;font-size:.82rem;opacity:.75;margin-top:4px}
@media(max-width:760px){.camp-feature{grid-template-columns:1fr}.camp-photo img{min-height:220px}.camp-copy{padding:28px 24px}}

/* Final polish: keep camp cleaning with the other services and make the quote upload easy to spot. */
.service-card.camp-card{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:330px}
.service-card-photo{width:100%;height:145px;object-fit:cover;display:block}
.camp-card-body{padding:24px 28px 28px;display:flex;flex-direction:column;flex:1}
.camp-card-body .eyebrow{margin-bottom:6px}
.camp-card-body h3{margin-top:0}
.camp-card-body a{margin-top:auto}
.quote-media-note{margin-top:28px;padding:18px 20px;border:1px solid rgba(240,212,134,.55);border-left:4px solid var(--gold);background:#f6f2e8;color:var(--ink)}
.quote-media-note h3{color:var(--green);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.75rem;margin:0 0 5px}
.quote-media-note p{color:#38433e!important;margin:0;font-size:.95rem}
.upload-label{font-size:.78rem!important;color:var(--green)}
.file-help{color:#59635e;opacity:1!important}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.cards{grid-template-columns:1fr}}


/* Services: keep all four cards visually consistent, with no stock camp photo. */
.service-card {display:flex;flex-direction:column;}
.service-card a {margin-top:auto;}
.quote-form input[type="file"] {color:var(--ink);}
.upload-label {padding:14px 16px!important;border:1px solid #d4d2c9;background:#fffdf8;display:block;}
.upload-label input[type="file"] {margin-top:10px!important;padding:8px 0!important;}
.file-help {color:#59635e!important;}

/* Clear upload button for quote form */
.upload-label{cursor:pointer}
.upload-heading{display:block;font-weight:600;letter-spacing:.08em;margin-bottom:10px}
.upload-label input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.upload-button{display:inline-block;padding:12px 18px;border:1px solid var(--gold);background:var(--gold);color:var(--green);font-weight:700;letter-spacing:.04em;border-radius:2px}
.upload-label:hover .upload-button{filter:brightness(.96)}
.file-help{display:block;font-size:.82rem;margin-top:9px}

/* Final hero spacing fix */
.hero h1{line-height:.92;margin-top:8px;margin-bottom:28px}
.hero .eyebrow{margin-bottom:18px}
@media(max-width:850px){.hero h1{line-height:.92;margin-bottom:24px}.hero .eyebrow{margin-bottom:16px}}

/* Final launch additions: reviews, careers and authentic before/after work */
.review-section{background:#f5f1e7;display:grid;grid-template-columns:.85fr 1.15fr;gap:2rem;align-items:start;max-width:none;padding-left:max(24px,calc((100vw - 1152px)/2));padding-right:max(24px,calc((100vw - 1152px)/2))}
.review-intro{max-width:520px}.review-intro p:not(.eyebrow),.careers-copy p{color:#515d55;line-height:1.7}
.published-review{margin-top:1.6rem;padding:1.5rem 1.5rem 1.25rem;background:#fff;border-left:3px solid #b99b5d;box-shadow:0 8px 24px rgba(23,60,46,.06)}.published-review-stars{color:#b08b43;letter-spacing:.12em;font-size:1.05rem}.published-review blockquote{margin:1rem 0;color:#34453b;line-height:1.8;font-size:.98rem}.published-review-name{margin:0;color:#173c2e;font-weight:700}.review-submit{min-width:0}.review-submit h3{margin:.1rem 0 .4rem;color:#173c2e;font-size:1.25rem}.review-submit>p{color:#515d55;line-height:1.7;margin-top:0}
.review-form,.career-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:30px;background:#fff;border:1px solid #e0dccc}
.review-form label,.career-form label{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:#173c2e}
.review-form input:not([type=checkbox]),.review-form select,.review-form textarea,.career-form input:not([type=file]),.career-form select,.career-form textarea{width:100%;margin-top:7px;border:1px solid #d4d2c9;background:white;padding:12px;font:inherit;font-size:.95rem}
.review-form .full,.career-form .full{grid-column:1/-1}.review-form .consent-check{grid-column:1/-1;display:flex;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-weight:500;line-height:1.5}.review-form .consent-check input{margin-top:4px}.review-note{grid-column:1/-1;font-size:.83rem;color:#58635c;margin:0}.careers-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:2rem;align-items:start;background:#fff}.careers-copy{max-width:520px}.career-form input[type=file]{display:block;margin-top:10px;max-width:100%;font-size:.85rem}.file-help{display:block;text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:400;color:#667168;margin-top:7px}.hidden-field{display:none!important}
@media(max-width:800px){.review-section,.careers-section{grid-template-columns:1fr}.review-form,.career-form{grid-template-columns:1fr}.review-form .full,.career-form .full{grid-column:auto}}


/* Spacing polish: consistent section rhythm and clear form fields */
.section { padding-top: 78px; padding-bottom: 78px; }
.section-heading { margin-bottom: 32px; }
.section-intro { max-width: 760px; margin: 0 0 28px; color: #515d55; line-height: 1.7; }
.work-section > .container > h2 { margin-bottom: 14px; }
.work-section > .container > .section-intro { margin-bottom: 30px; }
.review-section { column-gap: 3rem; row-gap: 2rem; }
.review-intro > h2 { margin-bottom: 18px; }
.review-intro > p:not(.eyebrow) { margin: 0; }
.published-review { margin-top: 1.35rem; }
.published-review blockquote { margin: .8rem 0; line-height: 1.7; }
.review-submit h3 { margin-bottom: .65rem; }
.review-submit > p { margin-bottom: 1.25rem; }
.review-form, .career-form, .quote-form { gap: 18px 16px; }
.review-form label, .career-form label, .quote-form label { display: block; min-width: 0; line-height: 1.45; }
.review-form input:not([type=checkbox]), .review-form select, .review-form textarea,
.career-form input:not([type=file]), .career-form select, .career-form textarea,
.quote-form input, .quote-form select, .quote-form textarea { display: block; width: 100%; min-width: 0; margin-top: 8px; }
.review-form .consent-check { display: flex; }
.review-form .consent-check input { width: auto; flex: 0 0 auto; }
.review-note { line-height: 1.55; }
.careers-section { column-gap: 3rem; row-gap: 2rem; }
.careers-copy h2 { margin-bottom: 18px; }
.careers-copy p { margin: 0 0 16px; }
.careers-copy p:last-child { margin-bottom: 0; }
.quote { column-gap: 3rem; row-gap: 2rem; }
.quote h2 { margin-bottom: 18px; }
.quote-form { align-content: start; }
.contact { row-gap: 2rem; }
@media (max-width: 850px) {
  .section { padding-top: 58px; padding-bottom: 58px; }
  .review-section, .careers-section { gap: 28px; }
  .review-form, .career-form, .quote-form { gap: 16px; padding: 24px; }
  .work-section > .container > .section-intro { margin-bottom: 24px; }
}
@media (max-width: 520px) {
  .section { padding-left: 20px; padding-right: 20px; }
  .review-form, .career-form, .quote-form { padding: 20px; }
  .published-review { padding: 1.2rem; }
  .published-review blockquote { font-size: .94rem; }
}
