/* ============================================================
   Black Sheep Cleaning Co. — site styles
   Built from the brand style guide:
   sage lead, copper accent, Manrope, single-stroke house mark.
   ============================================================ */

:root{
  --sage:#4A5D50;
  --sage-deep:#3B4A40;
  --sage-tint:#E4E9E3;
  --ink:#22262B;
  --bone:#F5F1EA;
  --bone-lift:#FBF9F4;
  --limestone:#C7C0B3;
  --copper:#B5714D;
  --copper-deep:#9E5F3E;

  --maxw:1120px;
  --gutter:clamp(20px, 5vw, 56px);

  --peak: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpolyline points='3.5,13 10,5 16.5,13' fill='none' stroke='%234A5D50' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --dash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cline x1='4' y1='10' x2='16' y2='10' stroke='%23B3A995' stroke-width='2.3' stroke-linecap='round'/%3E%3C/svg%3E");
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  font-family:'Manrope',system-ui,sans-serif;
  background:var(--bone);
  color:var(--ink);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,svg{display:block;}
a{color:inherit;}

/* ---------- shared layout ---------- */
.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding-inline:var(--gutter);
}

.section{padding-block:clamp(64px, 9vw, 116px);}
.section--tight{padding-block:clamp(48px, 6vw, 76px);}
.section--tint{background:var(--sage-tint);}
.section--bone{background:var(--bone);}
.section--lift{background:var(--bone-lift);}

.eyebrow{
  font-size:12px;
  font-weight:700;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--copper);
  margin:0 0 18px;
  display:flex;
  align-items:center;
  gap:12px;
}
.eyebrow::after{
  content:"";
  flex:0 0 34px;
  height:2px;
  background:var(--copper);
  border-radius:2px;
}
.eyebrow--center{justify-content:center;}
.eyebrow--center::before{
  content:"";
  flex:0 0 34px;
  height:2px;
  background:var(--copper);
  border-radius:2px;
}
.eyebrow--muted{color:var(--limestone);}
.eyebrow--muted::after,.eyebrow--muted::before{background:var(--limestone);}

h1,h2,h3{
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.08;
  color:var(--ink);
  margin:0;
}
h2{font-size:clamp(1.9rem, 3.4vw, 2.85rem);}
h3{font-size:1.22rem;letter-spacing:-0.01em;line-height:1.25;}

.lead{
  font-size:clamp(1.02rem, 1.5vw, 1.22rem);
  color:#3d4650;
  max-width:60ch;
}

/* ---------- header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(245,241,234,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(199,192,179,0.55);
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  height:70px;
}
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  color:var(--ink);
}
.brand svg,.brand img{width:32px;height:auto;flex:none;}
.brand__name{
  font-weight:700;
  font-size:17px;
  letter-spacing:0.5px;
}
.nav{
  display:flex;
  align-items:center;
  gap:30px;
}
.nav a{
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:0.2px;
  position:relative;
  padding-block:6px;
}
.nav a:not(.btn)::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:0;height:2px;
  background:var(--copper);
  transition:width .22s ease;
}
.nav a:not(.btn):hover::after,
.nav a[aria-current="page"]::after{width:100%;}
.nav a[aria-current="page"]{color:var(--sage);}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-family:inherit;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.3px;
  text-decoration:none;
  padding:12px 22px;
  border-radius:999px;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .16s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:active{transform:translateY(1px);}
.btn--solid{background:var(--sage);color:var(--bone);}
.btn--solid:hover{background:var(--sage-deep);}
.btn--copper{background:var(--copper);color:#fff;}
.btn--copper:hover{background:var(--copper-deep);}
.btn--ghost{background:transparent;border-color:var(--limestone);color:var(--ink);}
.btn--ghost:hover{border-color:var(--sage);color:var(--sage);}
.btn--onsage{background:var(--bone);color:var(--sage);}
.btn--onsage:hover{background:#fff;}
.btn--onsage-ghost{background:transparent;border-color:rgba(245,241,234,0.5);color:var(--bone);}
.btn--onsage-ghost:hover{border-color:var(--bone);background:rgba(245,241,234,0.08);}

.nav-toggle{
  display:none;
  background:none;border:none;padding:8px;cursor:pointer;
}
.nav-toggle span{
  display:block;width:22px;height:2px;background:var(--ink);
  border-radius:2px;transition:transform .25s, opacity .2s;
}
.nav-toggle span + span{margin-top:5px;}

/* ---------- hero ---------- */
.hero{
  background:var(--sage);
  color:var(--bone);
  position:relative;
  overflow:hidden;
}
.hero__inner{
  padding-block:clamp(72px, 11vw, 140px);
  position:relative;
  z-index:2;
  max-width:820px;
}
.hero .eyebrow{color:#cdd6cd;}
.hero .eyebrow::after,.hero .eyebrow::before{background:#cdd6cd;}
.hero h1{
  color:var(--bone);
  font-size:clamp(2.4rem, 5.4vw, 4.15rem);
  font-weight:800;
  letter-spacing:-0.028em;
  max-width:16ch;
}
.hero__sub{
  margin:24px 0 34px;
  font-size:clamp(1.05rem, 1.6vw, 1.28rem);
  color:#dde3dd;
  max-width:52ch;
  line-height:1.55;
}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;}
/* faint sheep watermark */
.hero__mark{
  position:absolute;
  right:-30px;bottom:-50px;
  width:min(38vw, 360px);
  z-index:1;
  opacity:0.16;
  pointer-events:none;
}
.hero__mark img{width:100%;height:auto;display:block;}

/* page hero (packages) — lighter */
.pagehero{background:var(--bone);border-bottom:1px solid rgba(199,192,179,0.5);}
.pagehero__inner{padding-block:clamp(60px, 8vw, 104px);max-width:760px;}
.pagehero h1{font-size:clamp(2.2rem, 4.6vw, 3.5rem);font-weight:800;}
.pagehero .lead{margin-top:22px;}

/* ---------- trust strip ---------- */
.trust{
  background:var(--ink);
  color:var(--bone);
}
.trust__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:14px 34px;
  padding-block:20px;
  font-size:13px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
}
.trust__inner span{display:inline-flex;align-items:center;gap:14px;}
.trust__dot{color:var(--copper);font-size:15px;line-height:1;}

/* ---------- section head ---------- */
.head{max-width:640px;margin-bottom:clamp(38px,5vw,58px);}
.head--center{margin-inline:auto;text-align:center;}
.head p{margin:16px 0 0;}

/* ---------- included / excluded lists ---------- */
.duo{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px, 5vw, 72px);
}
.checklist{list-style:none;margin:0;padding:0;}
.checklist li{
  position:relative;
  padding:12px 0 12px 34px;
  border-bottom:1px solid rgba(199,192,179,0.5);
  font-size:15px;
  color:#2c333a;
}
.checklist li::before{
  content:"";
  position:absolute;
  left:0;top:13px;
  width:20px;height:20px;
  background:var(--peak) center/contain no-repeat;
}
.checklist--no li::before{background-image:var(--dash);}
.checklist--no li{color:#6c6a63;}
.list-title{
  font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink);margin:0 0 14px;
}
.list-title--muted{color:#8b8577;}

/* ---------- two info cards ---------- */
.cards2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.icard{
  background:var(--bone);
  border:1px solid rgba(199,192,179,0.65);
  border-radius:14px;
  padding:clamp(28px,3.5vw,40px);
}
.icard__tag{
  font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--copper);margin:0 0 14px;
}
.icard h3{margin-bottom:12px;}
.icard p{margin:0;font-size:15px;color:#40474f;}

/* ---------- process (seal) ---------- */
.process{background:var(--ink);color:var(--bone);}
.process__inner{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:clamp(32px,6vw,72px);
  align-items:center;
}
.process .eyebrow{color:var(--copper);}
.process h2{color:var(--bone);}
.process p{color:#c9ccc9;font-size:clamp(1rem,1.5vw,1.18rem);max-width:52ch;margin:16px 0 0;}
.seal{width:200px;height:200px;margin-inline:auto;}
.seal--sm{width:150px;height:150px;}

/* ---------- partners ---------- */
.partner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-bottom:44px;
}
.partner__item{
  padding:30px 0 4px;
  border-top:2px solid var(--sage);
}
.partner__item h3{margin-bottom:10px;}
.partner__item p{margin:0;font-size:15px;color:#40474f;}

/* ---------- pricing ---------- */
.plans{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  align-items:stretch;
}
.plan{
  position:relative;
  background:var(--bone-lift);
  border:1px solid rgba(199,192,179,0.7);
  border-radius:16px;
  padding:34px 30px 32px;
  display:flex;
  flex-direction:column;
}
.plan--feature{
  background:var(--sage);
  border-color:var(--sage);
  color:var(--bone);
  box-shadow:0 24px 48px -24px rgba(74,93,80,0.55);
}
.plan__ribbon{
  position:absolute;top:-12px;left:30px;
  background:var(--copper);color:#fff;
  font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;
}
.plan__name{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:-0.01em;}
.plan__cadence{
  font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--copper);margin:6px 0 0;
}
.plan--feature .plan__cadence{color:#e6d2c5;}
.plan__price{
  font-size:2.6rem;font-weight:800;letter-spacing:-0.03em;line-height:1;
  margin:22px 0 6px;
}
.plan__save{
  display:inline-block;
  font-size:13px;font-weight:700;
  color:var(--sage);
  background:var(--sage-tint);
  padding:4px 12px;border-radius:999px;
}
.plan--feature .plan__save{color:var(--sage);background:var(--bone);}
.plan__rate{font-size:13px;color:#6c6a63;font-weight:600;margin-top:6px;}
.plan--feature .plan__rate{color:#cfd6cf;}
.plan__divider{height:1px;background:rgba(199,192,179,0.6);margin:22px 0;border:none;}
.plan--feature .plan__divider{background:rgba(245,241,234,0.25);}
.plan__feats{list-style:none;margin:0 0 26px;padding:0;flex:1;}
.plan__feats li{
  position:relative;padding:8px 0 8px 30px;font-size:14.5px;line-height:1.4;
}
.plan__feats li::before{
  content:"";position:absolute;left:0;top:9px;width:18px;height:18px;
  background:var(--peak) center/contain no-repeat;
}
.plan--feature .plan__feats li::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpolyline points='3.5,13 10,5 16.5,13' fill='none' stroke='%23F5F1EA' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan__billed{
  font-size:13px;font-weight:600;color:#6c6a63;margin:0 0 20px;letter-spacing:0.2px;
}
.plan--feature .plan__billed{color:#cfd6cf;}
.plan .btn{width:100%;}

.fineprint{
  margin-top:34px;
  font-size:13.5px;
  color:#6c6a63;
  max-width:72ch;
  line-height:1.65;
}

/* ---------- CTA / schedule block ---------- */
.schedule{background:var(--sage-tint);}
.schedule__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:22px;
}
.schedule p{max-width:52ch;margin:0;color:#3d4650;font-size:1.05rem;}
.schedule__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}
.inline-link{color:var(--copper);font-weight:700;text-decoration:none;white-space:nowrap;}
.inline-link:hover{text-decoration:underline;}

/* ---------- statement band (Remove / Protect) ---------- */
.statement{background:var(--sage);color:var(--bone);text-align:center;}
.statement__inner{max-width:760px;margin:0 auto;}
.statement .eyebrow{justify-content:center;color:#cdd6cd;}
.statement .eyebrow::after{display:none;}
.statement .eyebrow::before{content:"";width:34px;height:2px;background:#cdd6cd;display:inline-block;margin-right:12px;}
.statement h2{
  color:var(--bone);
  font-size:clamp(1.9rem,4.2vw,3.1rem);
  line-height:1.18;
  letter-spacing:-0.02em;
}
.statement p{
  color:#dde3dd;
  margin:24px auto 0;
  max-width:58ch;
  font-size:1.05rem;
  line-height:1.65;
}
.accent-text{color:var(--copper);font-weight:700;}

/* ---------- booking page ---------- */
.booking{
  background:var(--bone-lift);
  border:1px solid rgba(199,192,179,0.7);
  border-radius:16px;
  padding:14px;
  overflow:hidden;
}
.calendly-inline-widget{border-radius:10px;overflow:hidden;}
.booking__fallback{
  padding:40px 24px;
  text-align:center;
}
.booking__fallback p{color:#40474f;margin:0 0 18px;}
.booking__note{
  margin:24px auto 0;
  max-width:60ch;
  text-align:center;
  font-size:14px;
  color:#6c6a63;
}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:var(--bone);}
.site-footer__inner{
  padding-block:clamp(52px,7vw,80px);
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:40px;
  align-items:start;
}
.site-footer .brand__name{color:var(--bone);}
.footer__tag{
  margin:18px 0 0;
  font-size:15px;font-weight:600;letter-spacing:0.4px;
  color:var(--copper);
}
.footer__meta{color:#b7bcb8;font-size:14px;margin:10px 0 0;line-height:1.8;}
.footer__contact{text-align:right;}
.footer__contact a{
  display:block;text-decoration:none;color:var(--bone);
  font-size:15px;font-weight:600;margin-bottom:6px;
}
.footer__contact a:hover{color:var(--copper);}
.footer__contact span{display:block;color:#b7bcb8;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin-top:14px;}
.footer__base{
  border-top:1px solid rgba(245,241,234,0.14);
  padding-block:22px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#8f938f;
}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .process__inner{grid-template-columns:1fr;text-align:center;}
  .process .head{margin-inline:auto;}
  .seal{margin-bottom:8px;}
}
@media (max-width:820px){
  .nav{
    position:fixed;
    inset:70px 0 auto 0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--bone);
    border-bottom:1px solid var(--limestone);
    padding:8px var(--gutter) 20px;
    transform:translateY(-140%);
    transition:transform .3s ease;
    box-shadow:0 18px 30px -20px rgba(34,38,43,0.4);
  }
  .nav.open{transform:none;}
  .nav a{padding:14px 0;border-bottom:1px solid rgba(199,192,179,0.4);}
  .nav a:not(.btn)::after{display:none;}
  .nav .btn{margin-top:14px;border:1.5px solid var(--sage);}
  .nav-toggle{display:block;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}
@media (max-width:760px){
  .duo{grid-template-columns:1fr;gap:36px;}
  .cards2{grid-template-columns:1fr;}
  .plans{grid-template-columns:1fr;}
  .plan--feature{order:-1;}
  .partner{grid-template-columns:1fr;gap:0;}
  .partner__item + .partner__item{border-top:1px solid rgba(199,192,179,0.6);}
  .site-footer__inner{grid-template-columns:1fr;}
  .footer__contact{text-align:left;}
}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  .btn,.nav a::after{transition:none;}
}
